我得到了错误
fileloadexception:无法加载文件或程序集
“Newtonsoft。Json,版本=4.5.0.0,文化=中性,
PublicKeyToken=30ad4fe6b2a6aeed'或其依赖项之一。的
定位程序集的清单定义与该程序集不匹配
参考。(异常来自HRESULT: 0x80131040)
用于我的CI构建
我尝试过的解决方案
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"
culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
它也没有起作用
我也有同样的问题,当我试图创建MassTransit队列时,我得到了异常:
"Exception: System.TypeInitializationException: The type initializer for 'MassTransit.Serialization.JsonMessageSerializer' threw an exception. ---> System.IO.FileLoadException: Could not load file or assembly 'Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)"
对我有效的解决方案(在花了几天时间恢复了几次提交后):
We had a windows service solution that has .Service project and .XUnitTests project. Both of them were using a common nuget that has dependency on Newtonsoft.Json.dll. There was no explicit reference to Newtonsoft.Json nuget package in both projects (but we were using 'using Newtonsoft.Json;' namespace in our classes), so the common nuget was using version 9 of Newtonsoft.Json by default.
As soon as I installed the Newtonsoft.Json nuget in both .Service and .XUnitTests projects, the common nuget package started using the latest v12 Newtonsoft and that fixed my issue.
如果能节省大家宝贵的时间,就贴在这里吧。
我在7.0.0.0版本中遇到了完全相同的问题,导致我的问题的库是Microsoft.Rest.ClientRuntime,它以某种方式引用了错误的Newtonsoft版本(6.0.0.0)。Json,尽管正确的依赖管理在nugget(正确版本的newtonsoft。Json(7.0.0.0)被安装)。
我通过在配置文件中应用上述从6.0.0.0重定向到7.0.0.0(从Kadir Can)来解决这个问题:
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="7.0.0.0" />
---->经过几天没有改变任何东西,它又出现了同样的错误。我安装了6.0.0.0版本,更新到7.0.0.0,现在可以正常工作了。