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

我在我的项目中使用BreezeApi NuGet包。 它在Visual Studio 2013中。

我收到这个错误。

错误41程序集’Breeze.WebApi2,Version = 1.4.0.0,Culture = neutral,PublicKeyToken = f6085f1a45e2ac59’使用’System.Web.Http,Version = 5.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35’,其版本高于引用程序集’System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35′

我不知道为什么我的项目不断引用4.0版本。 我试过的事情:

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

  2. 我在web.config中添加了程序集绑定,如下所示

        

我该如何解决这个问题?

这就是我为解决与您非常相似的问题所做的工作:

错误2程序集’Breeze.WebApi2,Version = 1.4.0.0,Culture = neutral,PublicKeyToken = f6085f1a45e2ac59’使用’System.Web.Http,Version = 5.1.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35’,其版本高于引用程序集’System.Web.Http,Version = 5.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35’c:\ Repos \ SPACodeCamper \ packages \ Breeze.Server.WebApi2.1.4.12 \ lib \ Breeze.WebApi2.dll CC名.web

我在使用Angular和Breeze构建应用程序课程时遇到了这个错误- John Papa的第1部分 。 在将Breeze Web API Controller添加到CC.Web之后,它发生在步骤3.15。

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

  1. Microsoft.AspNet.WebApi.Client从5.0.0到5.1.2
  2. Microsoft.AspNet.WebApi.Core从5.0.0到5.1.2
  3. Microsoft.AspNet.WebApi.WebHost从5.0.0到5.1.2
  4. Microsoft.AspNet.WebApi.OData从5.0.0到5.1.2(这个我不得不重启Visual Studio来完成安装)

更新上面的NuGet包将使System.Web.Http的版本变为正确的版本,在本例中为5.1.0.0

我想你的答案在这里给出。

您必须更新NuGet包。 最简单的是NuGet数据包管理器控制台中的update-package。

请注意可能会破坏的其他依赖项。

我通过更新NuGet的所有包来解决这个问题。