【问题标题】:Unable to load System.Threading.Tasks.Extensions 4.2.0.0 using rabbitMQ无法使用 rabbitMQ 加载 System.Threading.Tasks.Extensions 4.2.0.0
【发布时间】:2020-11-16 19:04:46
【问题描述】:

所以,我们正在一个项目中更新我们的 RabbitMQ dll,该项目从 RabbitMQ 5.0.1 到 6.2.1 完美运行,但我不能使用 Factory.CreateConnection() 方法,因为它给了我一个内部异常

Could not load file or assembly 'System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Packages.config

  <package id="System.Threading.Channels" version="4.7.1" targetFramework="net461" />
  <package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net461" />

尝试重新安装 nuget 包,但同样的问题。 有没有人有一些提示可以是什么?检查项目的两个版本(旧的 Rabbit 客户端与新的),Factory 对象似乎完全相等(当然有一些不同的属性),所以真的不知道该怎么做。

在IEndPointResolver上才发现有一点点不同(上面是新版的RabbitMQ)。

IEndPointResolver_Difference

PS:在 Visual Studio 2017 上使用 C#

感谢您提供的任何建议 =)

【问题讨论】:

    标签: c# rabbitmq nuget-package


    【解决方案1】:

    检查正在执行的应用程序的配置文件(web.config 用于 WebForms 或 ASP.NET MVC 或 app.config 用于 WinForms 应用程序)。您可能有一个 bindingRedirect 条目,它强制应用程序使用特定版本。见https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/redirect-assembly-versions

    如果是这种情况,请完全删除该条目(假设所有类库和您的依赖项具有相同版本的 RabbitMQ.Client 或将重定向更新到您的新版本。

    【讨论】:

    • 没用:/ 有一些,但不适用于 RabbitMQ 或 System.Threading.Tasks.Extensions。尝试删除条目以防万一,但没有案例 u.u
    • 然后尝试添加一个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 2020-01-14
    相关资源
    最近更新 更多