首页 > 技术文章 > VS2008/MVC2 项目迁移到 VS2013/MVC4

rangeon 2014-04-18 11:52 原文

第1步、MVC2 => MVC3

手动处理可以参考这个:
http://www.asp.net/whitepapers/mvc3-release-notes#upgrading

使用工具 ASP.NET MVC 3 Application Upgrader
http://aspnet.codeplex.com/releases/view/59008
这个工具要求VS2010的项目,sln文件头为:
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
如果不是VS2010的项目,修改一下项目sln文件即可,注意保存的时候文件格式为“UTF8+签名”的形式。


第2步、MVC3 => MVC4

手动处理可以参考这个:
http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253806

使用工具 Auto Upgrade MVC 3 To MVC 4
https://www.nuget.org/packages/UpgradeMvc3ToMvc4
直接在NU控制台 Install-Package UpgradeMvc3ToMvc4
这个工具还提供源码:
https://github.com/NandipMakwana/UpgradeMvc3ToMvc4

 

第3步、ASPX => Razor

这个可能必须要手动处理了,工具处理的结果不太完美,需要手动再处理一下。

工具 MVC ASPX to Razor View Converter
http://razorconverter.codeplex.com/
遇到两个情况的乱码,一是文件编码不是UTF8,二是meta设置的charset的是gbk。

其它参考:
http://markcoleman.tumblr.com/post/7886399187/step-by-step-on-how-to-upgrade-mvc2-to-mvc3-with-razor
这篇文章中提到了 https://github.com/telerik/razor-converter 这个小工具,时间有限就没再测试。

 

另外特别说明一下:
VS2010 的 MVC3 Razor 项目(ASPX的正常),直接用 VS2013 打开或升级到 VS2013,都不能识别 MVC 模式,找不到 ViewBag,也不能添加 View/Controller,而且 Views 下的 Web.config 中配置的一些 namespace 也找不到,必须升级成 MVC4 才正常。

 

转换后的很多cshtml文件编码被改成了UTF-8,要用“UTF-8 + BOM”重新保存一下才行,不然程序运行会出错,并显示乱码。

 

 

 

推荐阅读