C# 组装';System.Web.Http,…';使用';Json,版本=6.0.0.0…';其版本高于引用的程序集

C# 组装';System.Web.Http,…';使用';Json,版本=6.0.0.0…';其版本高于引用的程序集,c#,asp.net,json.net,C#,Asp.net,Json.net,我在重建项目时遇到以下错误 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

我在重建项目时遇到以下错误

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
我已经在VS2013中使用Manage NuGet软件包卸载并安装了最新版本的Newtonsoft.Json(9.0.1)。为什么它仍然引用版本6.0.0.0(或者是4.5.0.0)

My 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
最后,更新owin OAuth,它似乎引用了旧的newtonsoft.json版本

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>
我可以将“旧版本”和“新版本”更改为任何内容,但这对编译没有影响


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

我不知道你是否还需要这个。 在我的项目中更新Newton.Json之后,会发生类似的错误。我找到了这条线索,并按照所有的答案指示去做,但没有运气。 但是当我从引用中删除Newton.Json,然后将更新版本的Newton.Json.dll添加到引用中时,它就可以工作了


在使用web api和owin时也要更改参考?在“安装新版本”一节中,尝试手动将newVersion=“4.5.0.0”版本更改为最新版本,并查看是否正确working@viveknuna-我进入参考>添加参考>浏览>选定的Newtonsoft.Json.dll>添加,但似乎没有添加任何内容,我也没有在程序集列表或最近添加的任何程序集下看到它。@MarcusH是的,我正在使用web api和owin。我卸载并重新安装它们只是为了确保我使用的是最新版本。谢谢你的建议。我试过了,但还是得到了同样的构建错误。从错误消息中,它似乎在抱怨“System.Web.Http”试图使用Newtonsoft.Json版本6.0.0.0(我使用的是9.0.1),“引用的程序集”是4.5.0.0。如何更改System.Web.Http正在使用的Newtonsoft.Json和程序集引用?好的,值得一试,。你看过这些答案了吗?是的,我看过。不幸的是,它们不起作用。如何安装“System.Web.Http”?我似乎在NuGet中找不到它。我会重新开始,统一安装所有包,然后逐个添加它们,并控制错误存在的位置。System.Web应位于Microsoft.AspNet.WebApi.Owin下
<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>
Update-Package Newtonsoft.Json -Version 9.0.1