系统网Http.Formatting.dll导致Newtonsoft出现问题.Json

本文关键字:问题 Json Newtonsoft 导致 Http Formatting dll 系统 | 更新日期: 2023-09-27 17:57:25

My Windows服务与MVC项目位于同一解决方案中。

MVC项目使用了对SignalR客户端的引用,该客户端需要Newtonsoft。Json v6+

Windows服务使用System。网Http。格式化,这需要Newtonsoft。Json 4.5.0.0版。

我认为这不会是一个问题,因为我可以在我的应用程序中使用绑定重定向。配置,但是我得到的错误

类型为"System"的未处理异常。发生IO.FileLoadException在系统中。网Http。格式化.dll

附加信息:无法加载文件或程序集"Newtonsoft。Json,版本=4.5.0.0,文化=中性,PublicKeyToken=30ad4fe6b2a6eed'或其依赖项之一。这个找到的程序集的清单定义与程序集不匹配参考(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>

我自己补充了这一点,但它不起作用,我也尝试过卸载和重新安装Json。Net与nuget包管理器,但无效

系统网Http.Formatting.dll导致Newtonsoft出现问题.Json

我们遇到了同样的错误,几天来一直在努力修复。我们终于发现这篇关于堆栈溢出的帖子Assembly引用无法解决-dependentAssembly问题?

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

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

希望能有所帮助。

assemblyBinding标记是否具有正确的xmlns模式?检查您遇到的问题是否与Assembly绑定重定向不起作用相同

@chintan123实际上为我指明了正确的方向,事实证明,尽管我创建的类库同时引用了System.Net.Http.FormattingNewtonsoft.Json,但只有前者被复制到需要它的调用项目的bin目录中。

在主调用项目中添加对Newtonsoft.Json的引用解决了这个问题。