Some (official or not) upgrade Mvc3 to Mvc5 guide?

2019-01-21 17:13发布

问题:

There is a (non-Microsoft) NuGet package that allows upgrading the Mvc3 to Mvc4.

There is a (Microsoft) article that explains how to manually migrate from Mvc3 to Mvc4. We can read from that article, by ex:

Locate the ProjectTypeGuids element and replace {E53F8FEA-EAE0-44A6-8774-FFD645390401} with {E3E379DF-F4C6-4180-9B81-6769533ABE47}.

Now, is there something similar that allows migrating from MVC3 to MVC5?

Is there sufficient to migrate first from 3 to 4, and then re-target the framework version (to 4.5) and install the official MVC nu-get?

回答1:

Due to the installation of VS2015 I had to convert my applications from MVC3 on MVC5. I've done this with success :). I hope that the following description will help someone in a similar issue:

1) Change .Net Framework to 4.5

Project -> Properties -> Application -> Target Framework -> 4.5

2) Install from Package Manager Console:

Install-Package Microsoft.AspNet.Mvc -Version 5.2.3

3) There is a line in web.config that is:

<add key="webpages:Version" value="1.0.0.0" />

Changed it to the version of system.web.webpages.dll in your bin folder:

<add key="webpages:Version" value="3.0.0.0" />

4) If your project uses the EntityFramework you have to upgrade it to version 5.x or higher and set dll references to

....\net45\EntityFramework.dll
....\net45\EntityFramework.SqlServer.dll

5) To solve problems like:

Error   CS0104  'Compare' is an ambiguous reference between 'System.ComponentModel.DataAnnotations.CompareAttribute' and 'System.Web.Mvc.CompareAttribute'

you can add:

using CompareAttribute = System.Web.Mvc.CompareAttribute;

6) You will probably have to change additional definitions in the web.config and the Views\web.config and find and replace text as shown below:

System.Web.Mvc, System.Web.Mvc.*, System.Web.Razor, System.Web.WebPages.Razor change from 3.0.0.0 to 5.0.0.0

System.Web.WebPages, System.Web.WebPages.* change from 1.0.0.0 to 3.0.0.0

That's all :)



回答2:

As an answer that someone suggested, then for a unknow cause removed, I will add this article reference for the question above:

How to Upgrade an ASP.NET MVC 4 and Web API Project to ASP.NET MVC 5 and Web API 2