2014-04-24 43 views
5

中的NuGet我有以下過時包:無法從4.0.20710.0版本更新NuGet包「微軟ASP.NET MVC」 5.1.2

enter image description here

然而,當我點擊更新按鈕,我收到以下錯誤:

錯誤:將'Microsoft.AspNet.Mvc 4.0.20710.0'更新爲'Microsoft.AspNet.Mvc 5.1.2'失敗。

Unable to find a version of 'AspNetMvc' that is compatible with 'Microsoft.AspNet.Mvc 5.1.2'.

這發生在使用這個包兩個項目:

enter image description here

我上這兩個項目.NET 4.5框架運行。我能做些什麼來升級這個軟件包,或者它與4.5不兼容,還是我現在應該使用不同的NuGet軟件包?

回答

2

據我所知,升級到4.5.1並沒有真正解決問題。事實上,我能夠在將目標框架保持到4.5的同時修復它。

這是我執行的黑魔法,它似乎修復了它。首先,卸載3箇舊的MVC庫(如建議的in this comment),重新安裝新的,重建。至少在這部分我可以在NuGet Manage Packages UI中進行,在那裏更新在同一個地方失敗。在這一點上,NuGet很高興,你可以編譯,但你的應用程序實際上不會工作。

接下來,一定要按照絕對每一步在Upgrade ASP.NET 4 document referenced in the other comment。當我意外地忽略了一步,我會得到奇怪的,非直觀的錯誤(回想起來很明顯)。例如,您必須更新兩個單獨的Web.config文件,根目錄和Views目錄中的一個。你必須找到舊的版本號,並且在那個版本中手動更改它們,其中根Web.config有時會自動修復。否則,我會看到可怕的錯誤,如「違反類型System.Web.WebPages.Razor.WebPageRazorHost的繼承安全規則」等。我應該把每一個錯誤信息都抄襲後人,但是問題是,對於每一個錯誤,我都會回到那個升級指南,檢查一下步驟,意識到我錯過了一個,修復,然後得到一個新的錯誤,直到他們全部離開了。

有好消息。至少在我的情況下,儘管所有可怕的警告,你必須找到不兼容,應用程序的其餘部分沒有任何變化,像以前一樣工作。

2

MVC 5.1構建於.NET 4.5.1上。這是你的第一個問題。您需要在項目上下文菜單>屬性下將目標框架更改爲「.NET Framework 4.5.1」。

如果這不起作用,您可能需要卸載MVC軟件包並重新安裝它。

我的經驗是,從主要版本升級可能會很痛苦,並且您對細節的關注 - 尤其是對web.config進行更改時 - 尤爲重要。您可以在此處查看從4到5的指南,並根據5.1進行相應調整:http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2

根據項目的複雜程度,將現有代碼文件轉移到新創建的項目中使用4.5.1 Visual Studio MVC模板。

+0

太棒了!我們剛剛從.NET 4.0升級到4.5,所以我會嘗試去4.5.1,看看是否有幫助。 –

+1

謝謝!定位4.5.1並刪除並重新安裝該軟件包可解決問題。現在,我加載網站時出現運行時錯誤,但我想這是一個單獨的問題。標記爲答案。 –

9

首先將項目框架更改爲4.5。1

打開NuGet包管理控制檯和

  1. 卸載-封裝AspNetMvc
  2. 卸載-封裝Microsoft.AspNet.Mvc
  3. 安裝-封裝Microsoft.AspNet.Mvc

這對我有用。

相關問題