如何修复 json.net (Newtonsoft.Json) 运行时文件加载异常
How to fix json.net (Newtonsoft.Json) runtime file load exception
我每次 运行 我的项目时都会收到以下异常:
An exception of type 'System.IO.FileLoadException' occurred in
mscorlib.dll but was not handled in user code
Additional information: Could not load file or assembly 'Newtonsoft.Json, Version=4.5.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)
我尝试了几乎所有可以在网上找到的解决方案。
我的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>
我什至使用以下命令 update/reinstall json.net:
update-package Newtonsoft.Json -reinstall
update-package Newtonsoft.Json
我还能尝试什么?
更改您的绑定重定向 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
的版本
谢谢大家,我找到问题了。当我把它放在 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>
我遇到了这个问题,经过仔细检查,我意识到 Newtonsoft 以某种方式被添加了两次
<dependentAssembly>..</dependentAssembly>
在我的 web.config 文件中。我有 8.0 和 9.0 版本的条目。我相信第二个条目是在我从 8.0 更新到 9.0 时创建的。已自动创建新条目,但未删除旧条目。
我刚刚为我的项目安装了 Nuget 包 'Newtonsoft.json',但遇到了同样的问题。它得到解决
我每次 运行 我的项目时都会收到以下异常:
An exception of type 'System.IO.FileLoadException' occurred in mscorlib.dll but was not handled in user code Additional information: Could not load file or assembly 'Newtonsoft.Json, Version=4.5.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)
我尝试了几乎所有可以在网上找到的解决方案。
我的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>
我什至使用以下命令 update/reinstall json.net:
update-package Newtonsoft.Json -reinstall
update-package Newtonsoft.Json
我还能尝试什么?
更改您的绑定重定向 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
的版本谢谢大家,我找到问题了。当我把它放在 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>
我遇到了这个问题,经过仔细检查,我意识到 Newtonsoft 以某种方式被添加了两次
<dependentAssembly>..</dependentAssembly>
在我的 web.config 文件中。我有 8.0 和 9.0 版本的条目。我相信第二个条目是在我从 8.0 更新到 9.0 时创建的。已自动创建新条目,但未删除旧条目。
我刚刚为我的项目安装了 Nuget 包 'Newtonsoft.json',但遇到了同样的问题。它得到解决