我得到了错误
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>
它也没有起作用
我在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,现在可以正常工作了。
在包管理器控制台执行:Update-Package -重装Newtonsoft.Json。
更新
我最初是作为评论发布这篇文章的,但正如@OwenBlacker建议的那样,我就把它放在这里:
如果在这样做之后仍然得到错误,那么最终对我有用的是我删除了Json。Net的<dependentAssembly>节从我的.config文件。重新安装会使它回来,如果它不存在,显然你需要删除它。在包本身有一个正常的解决方案之前,恐怕这个手动步骤是必须的。
注意:在这样做之前,请阅读下面的评论。
根据René下面的评论,请注意,答案中发布的命令将在解决方案中的每个项目中重新安装软件包。如果你用牛顿软体。Json包在几个项目中,可能使用不同的版本,只是执行上面的命令可能会有不想要的后果。