向 Azure 服务总线主题发送消息时出现异常

时间:2021-02-21 09:59:08

标签: c# azureservicebus azure-servicebus-topics

从现有 .Net 应用程序向 Azure 服务总线主题发送消息时,出现以下异常

<块引用>

“Azure.Messaging.ServiceBus.Core.ClientLibraryInformation”的类型初始值设定项引发异常。 无法加载文件或程序集“System.Runtime.InteropServices.RuntimeInformation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。 (来自 HRESULT 的异常:0x80131040)

以上在新的 .Net Core 应用程序中运行良好。我无法找出问题所在。

2 个答案:

答案 0 :(得分:0)

在 .NET 中,当同一个程序集的两个版本被加载到同一个程序集加载上下文中时,就会发生依赖冲突。这种冲突是任何使用版本依赖项的软件中都会发生的常见问题。因为没有简单的解决方案,而且很多依赖解析框架试图以不同的方式解决问题,所以这种情况通常被称为“依赖地狱”。

由于项目几乎从不故意或直接依赖相同依赖项的两个版本这一事实,冲突问题变得更加复杂。相反,该项目有两个或多个依赖项,每个依赖项都需要相同依赖项的不同版本。

例如,假设您的 .NET 应用程序 DuckBuilder 引入了两个依赖项,以执行其部分功能,如下所示:

enter image description here

因为 Contoso.ZipToolsFabrikam.FileHelpers 都依赖于不同版本的 Newtonsoft.Json,所以可能会存在依赖冲突,具体取决于每个依赖项的加载方式。

答案 1 :(得分:0)

我不得不手动更新引用。当我这样做时,该方法开始正常工作。