Microsoft.Diagnostics.Tracing.EventSource 有 RabbitMQ.Client.dll 例外

Microsoft.Diagnostics.Tracing.EventSource with the RabbitMQ.Client.dll exception

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

An unhandled exception of type 'System.IO.FileLoadException' occurred in RabbitMQ.Client.dll Could not load file or assembly 'Microsoft.Diagnostics.Tracing.EventSource, Version=1.1.28.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

更新

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

enter image description here

你并不孤单 - 这是 known issue with the RabbitMQ .NET client, which has also been discussed on the rabbitmq-users mailing list

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

Microsoft.Diagnostics.Tracing.EventSource.Redist

到具体版本1.1.28.0。 (这是在discussion of the issue.) How to downgrade is explained here中提出的-注意在第二步中,您需要选择上面提到的特定版本,而不是最新版本。

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

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

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

截图显示的是旧版本1.1.28.0,符合要求。当然你可以通过这种方式随时查看引用的DLL的版本。

更新(2020/07/13): rabbitmq .NET 客户端版本 6 已经发布。在我们的团队中,我们仍然无法更新,因为我们需要等待 NServiceBus 包装器的相应版本 6,但这将是 released as well within the next few weeks