繁体   English   中英

程序集 'System.Web.Http, ...' 使用 'Newtonsoft.Json, Version=6.0.0.0...' 其版本高于引用的程序集

[英]Assembly 'System.Web.Http, ...' uses 'Newtonsoft.Json, Version=6.0.0.0...' which has a higher version than referenced assembly

重建项目时出现以下错误。

Assembly 'System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' uses 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' which has a higher version than referenced assembly 'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'    D:\Development\MyProject\bin\System.Web.Http.dll

我已经使用 VS 2013 中的管理 NuGet 包卸载并安装了最新版本的 Newtonsoft.Json (9.0.1)。为什么它仍然引用版本 6.0.0.0(或者是 4.5.0.0)?

我的 web.config 显示如下:

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

我还应该做些什么来解决这个问题? 谢谢。

在将nuget包Microsoft.AspNet.WebApi.Owin与Microsoft.Owin.Security.OAuth包一起安装后,我遇到了与newtonsoft.json引用类似的问题。 我通过在nuget包管理器中运行以下命令解决了这个问题

首先,卸载newtonsoft.json

uninstall-package Newtonsoft.Json -Force

然后,安装最新的newtonsoft.json

install-package Newtonsoft.Json

最后,更新似乎引用旧的newtonsoft.json版本的owin OAuth

update-package Microsoft.Owin.Security.OAuth

在此之后,构建项目,它应该编译..至少我做了:)

我设法通过进入web.config并更改它来解决这个问题:

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

对此:

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

我不确定为什么当我的Newtonsoft.Json版本是9.0.1时,“newVersion”应该是9.0.0.0,但它不能用后者编译。

有趣的是,当我稍后在Package Manager控制台中输入以下内容时:

Update-Package Newtonsoft.Json -Version 9.0.1

我可以将“oldVersion”和“newVersion”改为任何东西,它对编译没有任何影响。

非常感谢Rajput,Marcus H和Vivek Nuna的帮助。

我不知道你是否还需要这个。 在我的项目中更新Newton.Json之后,会发生您的错误。 我找到了这个帖子并按照所有答案说明但没有运气。 但是,当我从引用中删除Newton.Json ,然后将我的新版本的Newton.Json.dll添加到引用时 ,它的工作原理!

删除参考

我刚遇到这个问题,花了太多时间来修复它。

对我来说最重要的是意识到我的 API 的发布阶段没有在 API 的根文件夹中发布 web.config,而是在 bin 文件夹中。

将 web.config 移动到根目录解决了问题,因为 IIS 可以正确设置 API,而不是回退到主机/机器配置(不包括重新绑定指令)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM