2013-01-08

手動升級MVC 3專案至MVC 4

自從看了保哥的 ASP.NET MVC 4 開發實戰後,就躍躍欲試,把手邊的MVC 3專案升級成MVC 4試看看,順手將步驟及碰到的問題記錄下來。


【安裝 MVC 4】

由於我目前仍是使用 VS2010,所以交給 Web Pl 安裝 MVC 4 就是最輕鬆的方式了。
( VS 2012 已內建 MVC 4,所以就不需要此步驟了。)

安裝之後,打開VS2010,就可以看到 MVC 4 的專案範本:


【升級步驟】



小弟是參考官方版的步驟進行,並搭配網友的文章參考。

1.修改「所有」web.config

包括根目錄及Views目錄下的config檔,將原本的組件引用從:
System.Web.Mvc, Version=3.0.0.0
System.Web.WebPages, Version=1.0.0.0
System.Web.Helpers, Version=1.0.0.0
System.Web.WebPages.Razor, Version=1.0.0.0
換成新的版本號:
System.Web.Mvc, Version=4.0.0.0
System.Web.WebPages, Version=2.0.0.0
System.Web.Helpers, Version=2.0.0.0
System.Web.WebPages.Razor, Version=2.0.0.0

2.修改網站根目錄的web.config

webpages:Version 的value改成"2.0.0.0”,並加入 PreserveLoginUrl 這行。

3.安裝NuGet套件: ASP.NET MVC 4

此步驟我猜想是為了更新專案中的reference之用;
另可考慮一併安裝或升級 jQuery, jQuery Validation, jQuery UI, Entity Framework, Modernizr 等套件(非必要),也可之後再處理。

4.修改專案型別

在MVC專案上按右鍵「卸載專案」,並編輯csproj專案檔。

將 ProjectTypeGuids 內的
{E53F8FEA-EAE0-44A6-8774-FFD645390401}
置換為
{E3E379DF-F4C6-4180-9B81-6769533ABE47}

存檔後,關閉檔案。

5.重新載入MVC專案


6.(修改網站的web.config)

若有引用元件編譯,或許還需修改網站的web.config;
將其中 bindingRedirect 的 newVersion 修改成前述對應更新的版本號。

【升級成果】

經過編譯之後,可以從網頁回傳的header裡,看到專案已正常執行於 MVC 4 了。^^




為了讓專案能使用MVC 4的新功能,及更接近專案預設範本,會在下一篇文章中補充相關的步驟。


延伸閱讀:

沒有留言:

張貼留言

引用 Topshelf 無法進行偵錯的經驗

Topshelf  是一個可以簡化撰寫 Windows Service 的套件,引用之後,我們只要當作撰寫一般 Console 的應用程式就可以。 只是近來撰寫上遇到無法進行Debug的狀況,在Visual Studio一進行偵錯可以看到Console 程式被執行,並顯示...