我收到错误了
System.IO.FileLoadException :无法加载文件或程序集“Newtonsoft.Json、Version=4.5.0.0、Culture=neutral、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>它也不管用
发布于 2014-04-30 07:00:40
在包管理器控制台中执行:Update-Package –reinstall Newtonsoft.Json。
更新
我最初将此作为评论发布,但正如@OwenBlacker建议的那样,我将把它放在这里:
如果在执行此操作后仍然会出现错误,那么最终对我有效的是,我从我的<dependentAssembly>文件中删除了Json.Net的.config部分。如果它不在的话,重新安装会把它带回来,显然你需要删除它。在包本身有一个正常的解决方案之前,恐怕这个手动步骤是必须的。
注意:请阅读下面的评论,然后再这么做.
根据勒内在下面的评论,请注意,在答案中发布的命令将在解决方案中的每个项目中重新安装包。因此,如果您在多个项目中使用Newtonsoft.Json包,并且可能使用不同的版本,只执行上述命令可能会产生不必要的后果。
发布于 2014-06-27 21:32:37
对于使用Newtonsoft.Json v4.5版本有问题的每个人,请尝试在web.config或app.config中使用此方法:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<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>
</assemblyBinding>
</runtime>重要:检查配置文件的configuration标记是否没有名称空间属性(如https://stackoverflow.com/a/12011221/150370中所建议的)。否则,assemblyBinding标记将被忽略。
发布于 2015-07-14 10:22:09
关键是在配置文件中引用正确的版本.
步骤;
1-查看项目引用属性中的Newtonsoft.Json.dll版本,无论软件包文件夹中的版本是什么(例如,我的版本是7.0.1,参考版本是7.0.0.0)
2-看看这个项目在例外情况下对你的期望(我的是6.0.0.0)
3-将依赖程序集添加到您的配置文件中。
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30AD4FE6B2A6AEED" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="7.0.0.0"/>
</dependentAssembly>https://stackoverflow.com/questions/22507189
复制相似问题