【问题标题】:MassTransit for .NET Core 2.2.NET Core 2.2 的 MassTransit
【发布时间】:2021-06-12 09:15:20
【问题描述】:

我的应用程序版本:netcoreapp2.2
MassTransit 包裹:

  <PackageReference Include="MassTransit" Version="7.1.8" />
  <PackageReference Include="MassTransit.AspNetCore" Version="7.1.8" />
  <PackageReference Include="MassTransit.Extensions.DependencyInjection" Version="7.1.8" />
  <PackageReference Include="MassTransit.RabbitMQ" Version="7.1.8" />

我需要此版本的 MassTransit 才能使用 IMessageScheduler(发布预定消息)。
现在当添加这个版本的 MassTransit 包时,我得到了这个错误:

错误 NU1107 检测到 Microsoft.Extensions.Configuration.Abstractions 的版本冲突。将 Microsoft.Extensions.Configuration.Abstractions 3.1.11 直接安装/引用到项目 MyAppXXX 以解决此问题。 MyAppXXX -> MassTransit.AspNetCore 7.1.8 -> Microsoft.Extensions.Hosting.Abstractions 3.1.11 -> Microsoft.Extensions.Configuration.Abstractions (>= 3.1.11) MyAppXXX -> Microsoft.AspNetCore.App 2.2.0 -> Microsoft.Extensions.Configuration.Abstractions (>= 2.2.0 &&

但是,masstransit 包支持 netstandard2.0 版本! 我能做些什么?
我可以在 .net core 2.2 中将“Microsoft.Extensions.Hosting.Abstractions”升级到 3.1.11 吗?也许不能。
还是有别的办法?

【问题讨论】:

  • 不要使用MassTransit.AspNetCore包,它是唯一需要3.1的包
  • @ChrisPatterson 但是不需要注册“AddMassTransitHostedService()”?或者没有这个包,怎么注册?
  • @ChrisPatterson 或者我可以将 HostedServiceConfigurationExtensions 类的内容从 MassTransit github 复制到我的应用程序?并使用我的新扩展而不是 AddMassTransitHostedService()?
  • @ChrisPatterson 我删除了 MassTransit.AspNetCore 包并且没有注册 AddMassTransitHostedService,它可以工作,但是不要将有错误的消息移动到 queue_error。
  • @ChrisPatterson 我从这里添加 MassTransitHostedService 类“github.com/MassTransit/MassTransit/commit/…”。并添加为托管服务“services.AddHostedService();”。它适用于将有错误的消息移动到 queue_error。但是这种方式正确吗?!

标签: c# masstransit asp.net-core-2.2


【解决方案1】:

我可以在 .net core 2.2 中将“Microsoft.Extensions.Hosting.Abstractions”升级到 3.1.11 吗?也许不能。

是的,应该可以。 Microsoft.Extension 包通常不会有太大的变化,但它们大多只是升级到较新的版本以与 .NET (Core) 版本号保持一致。

在这种情况下,Microsoft.Extensions.Hosting 可在 .NET Standard 2.0 上运行,因此应该能够在不影响应用程序的其余部分的情况下使用它的更新版本。

请注意,尽管 .NET Core 2.2 和 ASP.NET Core 2.2 自 2019 年 12 月起不再受支持。所以你真的应该尽快放弃它!

【讨论】:

  • 但是在升级 Microsoft.Extensions.Configuration.Abstractions 版本后,我陷入了其他扩展的升级链; Extensions.Primitives、DependencyInjection.Abstractions、Diagnostics.HealthChecks、FileProviders.Abstractions……这种方式在部署中存在巨大风险
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-20
  • 1970-01-01
  • 1970-01-01
  • 2020-08-22
  • 2021-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多