如何修复json.net(Newtonsoft.Json)运行时文件加载异常

时间:2016-02-16 20:41:00

标签: c# .net json.net fileloadexception

每次运行项目时都会出现以下异常:

  

类型' System.IO.FileLoadException'的例外情况发生在   mscorlib.dll但未在用户代码中处理   附加信息:无法加载文件或程序集' Newtonsoft.Json,Version = 4.5.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)

我尝试了几乎所有可以在网上找到的解决方案。

我的 packages.config 文件:

<package id="Newtonsoft.Json" version="8.0.2" targetFramework="net451" />

and this in web.config file:
 <assemblyIdentity name="Newtonsoft.Json" PublicKeyToken="30ad4fe6b2a6aeed"  />
        <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="5.0.8"/>
      </dependentAssembly>

我甚至使用以下命令更新/重新安装 json.net

update-package Newtonsoft.Json -reinstall
update-package Newtonsoft.Json

我还能尝试什么?

4 个答案:

答案 0 :(得分:3)

更改绑定重定向newVersion和oldVersion以匹配您尝试使用的Json.net版本:

  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" PublicKeyToken="30ad4fe6b2a6aeed"  />
    <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0"/>
  </dependentAssembly>

4.5是框架版本,而不是Json.net的版本

答案 1 :(得分:0)

谢谢大家,我发现了问题。我没有添加文化=&#34;中性&#34;当我把它放在web.config中时。

JSON

答案 2 :(得分:0)

我遇到了这个问题,仔细观察后,我意识到牛顿软件已经两次加入

<dependentAssembly>..</dependentAssembly>

在我的web.config文件中。我有8.0和9.0版本的条目。我相信第二个条目是在我从8.0更新到9.0时创建的。自动创建了一个新条目,但未删除旧条目。

答案 3 :(得分:0)

我遇到了同样的问题,只是为我的项目安装了Nuget软件包“ Newtonsoft.json”。它得到解决