3

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

mscorlib.dll 中出现“System.IO.FileLoadException”类型的异常,但未在用户代码中处理附加信息:无法加载文件或程序集“Newtonsoft.Json,版本=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

4 回答 4

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的版本

于 2016-02-16T20:48:30.547 回答
0

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

于 2018-08-08T15:06:36.880 回答
0

谢谢大家,我找到了问题。当我把它放在 web.config 中时,我没有添加culture="neutral"。

<dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" PublicKeyToken="30ad4fe6b2a6aeed"  />
    <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0"/>
  </dependentAssembly>
于 2016-02-17T18:39:11.857 回答
0

我遇到了这个问题,经过仔细检查,我意识到 Newtonsoft 以某种方式被添加了两次

<dependentAssembly>..</dependentAssembly>

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

于 2016-07-28T12:11:20.763 回答