无法加载文件或程序集'Newtonsoft.= 7.0.0.0 Json版本

本文关键字:Newtonsoft Json 版本 加载 文件 程序集 | 更新日期: 2023-09-27 18:14:48

我面对下面的错误

无法加载文件或程序集Newtonsoft。Json, Version =那么文化=中性,PublicKeyToken=30ad4fe6b2a6aeed'或其之一依赖关系。定位的程序集的清单定义不会匹配程序集引用。(Exception from HRESULT: 0x80131040)

在Web.config 中可以看到如下内容
   <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
        <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
      </dependentAssembly>
所以我把它改成了
   <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
        <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.1.0" />
      </dependentAssembly>
在packeges

。我可以看到下面的条目

但我仍然面临同样的问题。请帮助

无法加载文件或程序集'Newtonsoft.= 7.0.0.0 Json版本

很多事情都可能出错,而这个错误消息什么也没有告诉您。

但我仍然面临着同样的问题。

也许最简单的方法是尝试重新安装软件包。

进入TOOLS> NuGet Package Manager,选择Package Manager Console。执行以下两个命令:

uninstall-package newtonsoft.json -force
install-package newtonsoft.json

如果在这样做之后你仍然得到一个错误,那么对我来说最终有效的是我删除了Json。Net的部分从我的.config文件。重新安装带来它,如果它不在那里,显然你需要删除它。在软件包本身有一个正常的解决方案之前,恐怕这个手动步骤是必须的。在包管理器控制台再次执行:

Update-Package –reinstall Newtonsoft.Json

还可以看看解决方案中项目的。net版本。

这是微软卸载项目的解决方案。

我也有同样的问题。我遵循ekostadinov的强制卸载/重新安装步骤,但需要添加一个额外的步骤:

我正在升级我的解决方案框架4.5.2。我的旧网。配置文件在配置标签中有一个命名空间。

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">

我更新到:

<configuration>

那么bindingRedirect应该适用于你正在使用的NewtonSoft的任何版本:

<runtime xmlns="">
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
  </dependentAssembly>
</assemblyBinding>

如果package。

配置包含两个相同的包名和不同的版本。例如,

<package id="System.Spatial" version="5.6.2" targetFramework="net45" />
<package id="System.Spatial" version="5.6.4" targetFramework="net45" />

谢谢。

我有同样的问题,做卸载和重新安装没有帮助。当时我试图安装Newtonsoft.Json的最新版本(10.0.3)。我最终安装了7.0.1版本,然后看到另一篇文章,建议将。dll复制到:'Program Files (x86)'Microsoft Visual Studio 14.0'Common7'IDE。

再次启动安装REST API过程,然后收到一个不同的错误。当尝试安装Microsoft.Rest.ClientRuntime 2.3.2时失败。为此,我进入NuGet并将其安装到我安装REST API的项目中。

再次启动REST API安装,这次它已经安装了。

哦,如果它对任何人的搜索有帮助,我在Windows Server 2012R2上使用VS2015做Azure浸入式02-API应用程序教程。

我有同样的问题,当我试图创建masstranst队列时,我得到了例外:

"Exception: System.TypeInitializationException: The type initializer for 'MassTransit.Serialization.JsonMessageSerializer' threw an exception. ---> System.IO.FileLoadException: Could not load file or assembly 'Newtonsoft.Json, Version=12.0.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)"

为我工作的解决方案(在花了几天时间恢复几个提交后):

  • 我们有一个windows服务解决方案,它有。service项目和.XUnitTests项目。他们都使用了一个共同的nuget依赖于Newtonsoft.Json.dll。没有明确提到Newtonsoft。Json nuget包在两个项目中(但我们使用'使用Newtonsoft.Json;'命名空间在我们的类中),所以常见的nuget使用的是Newtonsoft的9版。
  • 当我安装了Newtonsoft。.Service和.XUnitTests项目中,常用的nuget包使用最新的v12 Newtonsoft解决了我的问题。
如果能节省任何人的宝贵时间,就把它贴在这里吧。

大多数情况下,发生此错误是因为不同的程序集依赖于其他程序集的特定版本。

最简单的修复是更新所有依赖于Newtonsoft的包。

它将自动设置项目中的所有配置文件。

我得到了同样的错误,并通过在我的解决方案上做一个'清洁'来修复它。我用Newtonsoft。

谢谢@ekostadinov。我能够让它与@ekostadinov的解决方案一起工作。在我的例子中,默认的Web MVC模板有NewtonSoft JSON版本6。我已经添加了一个类库,并从Nuget包管理器中安装了NewtonSoft JSON version 9。

我试着从我的Web项目,包配置和依赖项中删除引用,但我仍然得到错误。现在,我得到错误消息说无法找到Newtonsoft JSON版本6。最初,我得到错误消息说无法找到Newtonsoft JSON版本9。

然后我按照@ekostadinov的步骤。

uninstall-package newtonsoft.json -force
install-package newtonsoft.json

我在包管理器控制台中得到了一个关于依赖项的警告,提到了Web版本的依赖项。油脂dll。但无论如何,它是成功的。

为了再次检查,我运行了上面文章 中提到的最后一个命令
Update-Package –reinstall Newtonsoft.Json

它运行时也没有任何警告。

现在,我可以在我所有的项目中使用版本9。

嗯,在我的情况下,解决方案中有多个项目,每个项目都使用不同版本的NewtonSoft.json。我必须继续并更改每个项目的package.config中的版本以与最新版本相匹配(好吧,它可以是任何版本,只是它应该在项目中相同)。曾经所有的包裹。配置指向相同的版本,我所要做的就是

Update-Package –reinstall Newtonsoft.Json

现在,注意,我还必须手动更改网页版本。在其中一个项目中配置程序集项。但这已经起作用了。

我可能太晚了,但希望它可能对支持旧项目的人有用。

添加dependentAssembly标签,并在oldVersion中给出你得到错误的版本号。在我的情况下,它给出了6.0.0版本的错误在newVersion中给出安装的版本值,如下所示:

<dependentAssembly>
            <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
            <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>