2014-02-13 17 views
9

我在我的項目中使用了BreezeApi nuget包。它在視覺工作室2013年。無論我如何嘗試,System.Web.Http引用都默認爲4.0版本

我得到這個錯誤。

錯誤41裝配 'Breeze.WebApi2,版本= 1.4.0.0,文化=中性公鑰= f6085f1a45e2ac59' 使用 'System.Web.Http,版本= 5.0.0.0,文化=中性公鑰= 31bf3856ad364e35'其中有一個版本高於引用的程序集「System.Web.Http,版本= 4.0.0.0,文化=中性公鑰= 31bf3856ad364e35」

我不知道爲什麼我的項目不斷引用到4.0版本。
我試過的東西。

1)我從我的項目中刪除了system.web.http 4.0的引用,並瀏覽到5.0 dll位置。只要我將其添加並回到溶液資源管理器,右擊system.web.http DLL中,示出4.0.0.0

2)I加入組件中的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" /> 

有人能幫我解決嗎?由於

+0

您定位的框架是什麼版本?此外,如果您展開引用,單擊System.Web.Http,並查看屬性窗口(F4),您應該看到一個Path屬性,它會給你一些洞察它來自哪裏(例如D:\ Projects \ MyProject \包\ Microsoft.AspNet.WebApi.Core.5.1.0 \ LIB \ net45 \ System.Web.Http.dll)。你的來自Microsoft.AspNet.WebApi.Core嗎? – scottt732

回答

14

這是我做過什麼來解決你的差不多的問題:

錯誤2大會 'Breeze.WebApi2,版本= 1.4.0.0,文化=中立, 公鑰= f6085f1a45e2ac59' 用途「系統.Web.Http, 版本= 5.1.0.0,文化=中性公鑰= 31bf3856ad364e35' ,其具有的版本高於引用組件「System.Web.Http, 版本= 5.0.0.0,文化=中性 公鑰= 31bf3856ad364e35'c:\ Repos \ SPACodeCamper \ packages \ Breeze.Server.WebApi2.1.4.12 \ lib \ Breeze.WebApi2.dll CC.Web

我在做約翰帕帕的課程Building Apps with Angular and Breeze - Part 1的時候出現了這個錯誤。在向CC.Web添加Breeze Web API控制器後,發生在步驟3.15。

要解決它,我們需要更新以下NuGet包。我用的NuGet包管理器在Visual Studio 2013:

  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

+3

感謝您的幫助 –

+1

hehehe來自@John Papa的評論!互聯網不是很酷嗎?順便說一下,這是一個自述文件,其中需要我在課程中進行其他更改:https://github.com/leniel/SPACodeCamper/blob/master/README.txt目前它仍在進行中。 –

1

我認爲你的答案給出here

你必須更新NU-得到包。最簡單的是nuget包管理器控制檯中的更新包。

請注意可能會破壞的其他依賴項。

0

我通過更新Nuget的所有包來解決這個問題。

相關問題