2012-01-13 58 views

回答

42

主要的變化是升級到最新版本(4.0 /2.0)的相關引用。您需要更新您的Web配置文件來升級以下命名空間的版本

  • System.Web.Mvc(更改爲4.0.0.0)
  • System.Web.Webpages(更改爲2.0.0.0)
  • System.Web.Helpers(更改爲2.0.0.0)
  • System.Web.WebPages.Razor(更改爲2.0.0.0)

你也需要更新根級Web配置文件有這些appsettings條目

<appSettings> 
    <add key="webpages:Version" value="2.0.0.0" /> 
    <add key="PreserveLoginUrl" value="true" /> 
</appSettings> 

然後,你需要更新項目中引用的DLL文件。刪除現有的MVC3 dll參考並添​​加MVC4(使用nuget包管理器來做到這一點)

這個link處理轉換的所有方面。根據需要參考。

+1

這並沒有爲我工作。 – 2012-01-23 21:47:59

+1

我需要做一個額外的步驟:我刪除了我的項目System.Web.Mvc,System.Web.WebPages,System.Web.Helpers參考,並增加了新版本的引用。 – Rn222 2012-08-21 19:47:02

4

你最好的賭注它安裝在平臺安裝程序的MVC4。 然後按照官方的asp.net/mvc/mvc4頁面上的步驟進行操作。如果你遵循(只)Shyju說明這是行不通的。

當你用官方說明結束,看在你的瀏覽目錄,你會發現另一個參考MVC組件和其他幾個人的剃刀另一個web.config文件。 您還想要更改此行的版本。基本上每次更換您3.0.0.0找到4.0.0.0 1.0.0.0和2.0.0.0爲

如果你不把這個最後的修改,可能會結束與在以下QUESTION

查找錯誤包括DLL的,並確保他們是正確的版本。

16

按照張貼在這裏的官方步驟:

http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253806

注:這些步驟包括官方發佈的 - 而不是開發者預覽版。

+1

此鏈接已經在[Shyju的回答](http://stackoverflow.com/a/8853408/2188245)中提供,並附有說明。 – 2014-08-13 21:43:55

+1

是的,但他遺漏了一些步驟,這不是一個應該在StackOverflow.com上重現的程序。開發人員應該直接轉到源代碼而不會傳遞Go。 – Seth 2014-08-13 22:20:28

5

更重要的是,使用自動更新工具:

https://www.nuget.org/packages/UpgradeMvc3ToMvc4

+1

我發現這是一種快速,簡單和簡單的方法,但它也添加到了我不需要的OAuth包中。 – 2014-01-30 14:00:52

+0

這對我來說沒有任何真正的原因(沒有寫下錯誤,對不起)。必須去手動路線。 – willem 2014-06-05 09:16:02

+0

這是一個過於侵入性的工具......造成了太多的假設,包括在一大堆openAuth中干擾。對於Intranet Windows驗證應用程序,它只是打破了一切。謹慎使用。 – 2015-02-17 09:38:04