C# · 12月 23, 2021

c# – System.Web.Http引用默认为4.0版本,无论我如何尝试

我在我的项目中使用BreezeApi nuget包.它在视觉工作室2013.

我得到这个错误.

Error 41 Assembly ‘Breeze.WebApi2,Version=1.4.0.0,Culture=neutral,PublicKeyToken=f6085f1a45e2ac59’ uses ‘System.Web.Http,Version=5.0.0.0,PublicKeyToken=31bf3856ad364e35’ which has a higher version than referenced assembly ‘System.Web.Http,Version=4.0.0.0,PublicKeyToken=31bf3856ad364e35’

我不知道为什么我的项目不断参考4.0版本.
我试过的东西

1)我从我的项目中删除system.web.http 4.0的引用,并浏览到5.0 dll位置.一旦我添加并回到解决方案资源管理器,右键单击system.web.http dll,它显示4.0.0.0

2)我在web.config中添加了装配绑定,如下所示

<dependentAssembly><assemblyIdentity name=”System.Web.Http” publicKeyToken=”31bf3856ad364e35″ culture=”neutral” /><bindingRedirect oldVersion=”0.0.0.0-5.1.0.0″ newVersion=”5.1.0.0″ />

有人可以帮我解决吗?谢谢

解决方法 这是我解决一个非常类似于你的问题:

Error 2 Assembly ‘Breeze.WebApi2,
PublicKeyToken=f6085f1a45e2ac59’ uses ‘System.Web.Http,
Version=5.1.0.0,PublicKeyToken=31bf3856ad364e35’
which has a higher version than referenced assembly ‘System.Web.Http,
Version=5.0.0.0,
PublicKeyToken=31bf3856ad364e35’ c:\Repos\SPACodeCamper\packages\Breeze.Server.WebApi2.1.4.12\lib\Breeze.WebApi2.dll CC.Web

在John Papa进行课程Building Apps with Angular and Breeze – Part 1时,我收到了这个错误.在将Breeze Web API控制器添加到CC.Web后,在步骤3.15发生.

要解决它,我们需要更新以下NuGet软件包.我在Visual Studio 2013中使用了NuGet软件包管理器:

> Microsoft.AspNet.WebApi.Client从5.0.0到5.1.2
> Microsoft.AspNet.WebApi.Core从5.0.0到5.1.2
> Microsoft.AspNet.WebApi.WebHost从5.0.0到5.1.2
> Microsoft.AspNet.WebApi.OData从5.0.0到5.1.2(这一个我不得不重新启动Visual Studio来完成安装)

以上更新NuGet软件包将会将System.Web.Http的版本与正确的版本相关,在这种情况下为5.1.0.0.