System.net.http.formatting导致Newtonsoft.json出现问题

Lia*_*mHT 11 c# asp.net asp.net-mvc json.net

我的Windows服务与MVC项目处于同一解决方案中.

MVC项目使用SignalR Client的引用,它需要Newtonsoft.Json v6 +

Windows服务使用System.Net.Http.Formatting,这需要Newtonsoft.Json版本4.5.0.0.

我认为这不会是一个问题,因为我可以在我的App.Config中使用绑定重定向,但是我得到一个错误

System.Net.Http.Formatting.dll中发生未处理的"System.IO.FileLoadException"类型异常

附加信息:无法加载文件或程序集'Newtonsoft.Json,Version = 4.5.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

我的app.config有以下内容:

<dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)

我自己添加了它,它不起作用,我也尝试使用nuget包管理器卸载并重新安装Json.Net,但无济于事

小智 5

我们遇到了同样的错误,并努力修复了几天。我们终于找到了这篇关于堆栈溢出的帖子无法解决程序集引用 -dependentAssembly 问题?

这让我们意识到要查看System.Net.Http.Formatting正在使用的版本,我们发现我们的解决方案一直在使用多个版本,System.Net.Http.Formatting.dll并且每个版本都引用了不同版本的Newtonsoft.Json.dll.

删除旧版本的引用 System.Net.Http.Formatting引用并重新添加引用,解决了问题。

希望有帮助。


Mot*_*lly 1

assemblyBinding 标记是否具有正确的 xmlns 架构?检查您遇到的问题是否与程序集绑定重定向不起作用相同