13

打開並編譯後,我得到以下錯誤VS 2012 RTM中的VS 2010 .net 4.0 MVC3項目。我怎樣才能解決這個問題,而不升級到MVC4?大會'SomeAssembly,使用'System.Web.Mvc,版本= 4.0.0.0,其版本高於引用程序集'System.Web.Mvc,版本3.0.0.0

我有VS 2010和VS 2012並排安裝。

錯誤1大會 'SomeAssembly,版本= 1.0.0.0,文化=中性公鑰=空' 使用 'System.Web.Mvc,版本= 4.0.0.0,文化=中性公鑰= 31bf3856ad364e35',其具有更高版本比引用的程序集「System.Web.Mvc,版本= 3.0.0.0,文化=中性公鑰= 31bf3856ad364e35」

+0

相關:http://stackoverflow.com/questions/10402005 –

+0

http://forums.asp.net/t/1800348.aspx/1 –

+0

http://stackoverflow.com/questions/5163773 ...全部基本上是同樣的問題。 –

回答

7

轉到參考,檢查System.web.mvc的當前版本(我猜它仍然指向mvc3)。刪除它們並再次添加引用,但這次是System.Web.Mvc 4.0 ..! 如果您在單一解決方案中使用多個項目,那麼.. 你有兩個項目ProjA(MVC4)和ProjB(仍然在MVC3), 如果ProjA有一個參考ProjB或使用ProjB那麼它最有可能給出上述錯誤。您可能必須在兩個項目中更改MVC版本。

+0

默認情況下,它將其切換到mvc 4.0 dll,並且我手動將其在csproj文件中更改爲4.0並在web.config中。沒有幫助。 – kyleb

+0

這是爲我做的。該消息是神祕的,並沒有告訴你錯誤在被引用的項目中。 – Chris

+0

這也適用於我,我用Nuget升級了我的ASP.NET MVC,它工作。 – anansharm

11

檢查您的web.config。即使您的項目引用4.0,system.web/assemblies也具有版本3.0。

這是我的情況。

21

另一件要檢查的是,你沒有一個測試項目仍然參考解決方案中的mvc3程序集。那是什麼讓我。

+1

這是我的情況,引用沒有更新,因爲它已經手動添加,安裝包含Nuget的包到測試項目中修復它。謝謝 –

+0

我的問題也是如此。 – Matt

1

如果您使用的是Visual Studio,則可以檢查NuGet包的更新,這些更新將更新而無需手動使用Web.config進行調整。選擇工具 - >庫包管理器 - >管理解決方案的NuGet包。通過選擇左側面板中的更新,檢查您是否處於最新版本的MVC中,然後在更新列表中查找MVC並單擊更新。更新完成後,點擊構建並構建解決方案。這就是我解決了MVC和Fluent Validation NuGet包之間的問題。它會自動更新Web.config。

0

使用asp.net 4.5並有類似的問題。 右鍵點擊參考文獻並轉至管理NuGet軟件包。檢查包含過期版本的軟件包是否有更新。 可能會要求覆蓋文件,但沒關係。

相關問題