2

为什么我会收到以下错误,我该如何解决?

RabbitMQ.Client.dll 中出现“System.IO.FileLoadException”类型的未处理异常无法加载文件或程序集“Microsoft.Diagnostics.Tracing.EventSource,版本=1.1.28.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或一个其依赖项。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

更新

在下面的评论部分发表评论后,我试图在Visual Studio 2019中找到Microsoft.Diagnostics.Tracing.EventSource。我为此使用了快捷方式,但仍然找不到该文件。文件可以放在哪里?Ctrl + Shift + T

在此处输入图像描述

4

1 回答 1

3

您并不孤单 - 这是 RabbitMQ .NET 客户端的一个已知问题,也已在rabbitmq-users 邮件列表中讨论过。

该修复程序将随客户端的下一个主要版本 (v6) 一起提供。在那之前,一种解决方法可能是降级 nuget 包

Microsoft.Diagnostics.Tracing.EventSource.Redist

到具体版本 1.1.28.0。(这在问题的讨论中提出。)这里解释了如何降级- 请注意,在第二步中,您需要选择上面提到的特定版本,而不是最新版本。

我的团队最近遇到了同样的问题,我们目前正在测试这个解决方法。

更新(2020-02-03):我们已经成功测试了解决方法;该应用程序不再崩溃。

我可以对 Nair 的评论添加一个简短的解释。安装合适的旧版本的 nuget 包后,您可以在解决方案资源管理器中验证您确实拥有 1.1.28.0 版本,方法是扩展项目的引用并查看引用的属性:

解决方案资源管理器中 Microsoft.Diagnostics.Tracing.EventSource.Redist DLL 的属性窗口

屏幕截图根据需要显示了旧版本 1.1.28.0。当然,您可以通过这种方式随时查找引用的 DLL 的版本。

更新 (2020/07/13): rabbitmq .NET 客户端的第 6 版已发布。在我们的团队中,我们仍然无法更新,因为我们需要等待 NServiceBus 包装器的对应版本 6,但它也将在接下来的几周内发布

于 2020-01-30T08:30:41.583 回答