在我的MVC 4 Web API项目中停止工作。它找不到Newtonsoft.Json。 运行此代码后:
Dim response As HttpResponseMessage = MyHttpClient.PostAsJsonAsync("Api/Test", MyObject).Result
我收到邮件错误:
System.Net.Http.Formatting.dll中发生未处理的“System.IO.FileLoadException”类型异常 附加信息:无法加载文件或程序集'Newtonsoft.Json,Version = 4.5.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)
我知道MS现在正在使用它作为默认的JSON序列化程序 - 并且它被引用了。我试图从NuGet更新Newtonsoft.Json,但我找不到它;我找到了“Json.Net”。所以我使用包管理器控制台重新安装
Update-Package Newtonsoft.Json –Reinstall
但仍然无效。 有谁知道为什么会出错?
答案 0 :(得分:2)
您似乎正在使用一些依赖于旧版JSON.NET的过时库。您可以尝试安装它的特定版本:
Update-Package Newtonsoft.Json -Version 4.5.11
如果这无法告诉您某个其他软件包需要更新版本的JSON.NET,那么您需要通过升级您正在使用的过时库来解决此冲突,这取决于JSON.NET 4.5
答案 1 :(得分:2)
尝试在<runtime><assemblyBinding>
内的web.config文件中添加此部分:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" />
</dependentAssembly>