Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
524 views
in Technique[技术] by (71.8m points)

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

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?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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

....
et45EntityFramework.dll
....
et45EntityFramework.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 Viewsweb.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 :)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...