有一个(非Microsoft)NuGet package允许将Mvc3升级到Mvc4。
有一个(Microsoft)article解释了如何从Mvc3手动迁移到Mvc4。我们可以从那篇文章中读到:ex:
找到ProjectTypeGuids元素并替换 {E53F8FEA-EAE0-44A6-8774-FFD645390401}带 {E3E379DF-F4C6-4180-9B81-6769533ABE47}。
现在,有类似的东西允许从MVC3迁移到 MVC5 吗?
是否足够先从3迁移到4,然后重新定位框架版本(到4.5)并安装official MVC nu-get?
答案 0 :(得分:33)
由于安装了VS2015,我不得不在MVC5上从MVC3转换我的应用程序。我成功完成了这个:)。我希望以下描述可以帮助处理类似问题的人:
1)将.Net Framework更改为4.5
Project -> Properties -> Application -> Target Framework -> 4.5
2)从Package Manager控制台安装:
Install-Package Microsoft.AspNet.Mvc -Version 5.2.3
3) web.config中有一行:
<add key="webpages:Version" value="1.0.0.0" />
将其更改为bin文件夹中的system.web.webpages.dll版本:
<add key="webpages:Version" value="3.0.0.0" />
4)如果您的项目使用EntityFramework,则必须将其升级到5.x或更高版本并将dll引用设置为
....\net45\EntityFramework.dll
....\net45\EntityFramework.SqlServer.dll
5)解决以下问题:
Error CS0104 'Compare' is an ambiguous reference between 'System.ComponentModel.DataAnnotations.CompareAttribute' and 'System.Web.Mvc.CompareAttribute'
你可以添加:
using CompareAttribute = System.Web.Mvc.CompareAttribute;
6)您可能需要更改 web.config 和 Views \ web.config 中的其他定义,然后查找并替换文字如下图所示:
System.Web.Mvc
,System.Web.Mvc.*
,System.Web.Razor
,System.Web.WebPages.Razor
从3.0.0.0
更改为5.0.0.0
System.Web.WebPages
,System.Web.WebPages.*
从1.0.0.0
更改为3.0.0.0
全部:)
答案 1 :(得分:8)
作为有人建议的答案,删除了未知原因的主题,我将为上述问题添加此文章参考:
How to Upgrade an ASP.NET MVC 4 and Web API Project to ASP.NET MVC 5 and Web API 2