2015-09-26 82 views
15

我面临下面无法加载文件或程序集“Newtonsoft.Json,版本= 7.0.0.0

无法加载文件或组件中的错误” Newtonsoft.Json,版本= 7.0.0.0, 文化=中立,PublicKeyToken = 30ad4fe6b2a6aeed'或其 依赖项之一。找到的程序集的清单定义不符合程序集引用的 。 (异常来自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.config我可以看到下面的条目

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

+0

原因可能很多。首先:检查输出文件夹中的程序集,并检查文件版本和强名称是否符合您的期望。我怀疑强名称版本是7.0.0.0所以更改bindingRedirect(强名称和文件版本可能会有所不同 - 它为Newtonsoft.Json 6. *)。 –

回答

34

很多事情都可能出错,这个错误信息告诉你什么都没有。

但我仍面临同样的问题。

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

转到工具> NuGet包管理器和选择包管理器控制台。执行以下两条命令:

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

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

Update-Package –reinstall Newtonsoft.Json 

另请参阅您的解决方案中的.Net version项目。

这是卸载项目的Microsoft solution

+0

我也有一个包含牛顿软件包的问题.JSON作为先决条件,目前安装的是6.x.更新软件包不起作用,但uinstall /重新安装下载了当前的9.x并修正了错误。 – ajeh

0

大多数情况下,由于不同的程序集而发生此错误取决于某些其他程序集的特定版本。

最简单的修复方法是使用nuget软件包管理器更新所有依赖于Newtonsoft.Json的软件包。

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

0

我得到了同样的错误,并通过在我的解决方案上执行“清理”来修复它。我在UWP应用程序中使用Newtonsoft.Json。

0

谢谢@ekostadinov。我能够使用@ekostadinov的解决方案进行工作。在我的情况下,默认的Web MVC模板具有NewtonSoft JSON版本6.我添加了一个类库,并且我从Nuget包管理器安装了NewtonSoft JSON版本9。

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

然后我遵循@ekostadinov步骤。

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

我对于警告的包管理器控制台提的关于与Web.Grease DLL版本的依赖依赖。但无论如何,这是成功的。

只是为了仔细检查,我跑在上面的帖子

Update-Package –reinstall Newtonsoft.Json 

它跑没有任何警告,以及提到的最后一个命令。

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

0

如果package.config包含2个具有不同版本的相同软件包名称,则会发生这种情况。

例如,

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

谢谢。

0

我有同样的问题,并执行卸载和重新安装没有帮助。当时我试图安装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 Immersion 02-API App教程。