MVC3.0 项目升级到 MVC4.0

按照 http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253806 的步骤

第一步:修改web.config

注意,默认的MVC3网站会有两个web.config文件。一个在网站根目录,另一个在Views目录下。这两个都要改。

在web.config中查找下面每一行代码:

1 System.Web.Mvc, Version=3.0.0.0  
2 System.Web.WebPages, Version=1.0.0.0  
3 System.Web.Helpers, Version=1.0.0.0  
4 System.Web.WebPages.Razor, Version=1.0.0.0  

然后替换为:

1 System.Web.Mvc, Version=4.0.0.0  
2 System.Web.WebPages, Version=2.0.0.0  
3 System.Web.Helpers, Version=2.0.0.0  
4 System.Web.WebPages.Razor, Version=2.0.0.0  

第二步:在站点根目录下的web.config里,将webPages:Version的属性改成"2.0.0.0",并增加一个新节点PreserveLoginUrl,设置属性为"true":

<appSettings>  
  <add key="webpages:Version" value="2.0.0.0" />  
  <add key="PreserveLoginUrl" value="true" />  
</appSettings>  

第三步:在VS的解决方案浏览器中,找到你的MVC网站,在引用(Reference)上点击右键,选择“管理NuGet包”(Manage NuGet Packages),在左边栏上选择"UpdatesNuGet official package source"。(注:此处官方文档有误,不是Online分类里的)然后升级下面的组件: 

ASP.NET MVC 4
(可选) jQuery, jQuery Validation and jQuery UI
(可选) Entity Framework
(可选) Modernizr

注:或直接删除项目中注:或直接删除项目中原有的 System.Web.Mvc 3.0.0.0、System.Web.WebPages 1.0.0.0,重新引用System.Web.Mvc 4.0.0.0、System.Web.WebPages 2.0.0.0

第四步:在解决方案管理器上右击MVC项目名称,选择“Unload Project”,然后再右击一次,选择"Edit ProjectName.csproj"。

第五步:在ProjectTypeGuids节点下查找{E53F8FEA-EAE0-44A6-8774-FFD645390401},替换为{E3E379DF-F4C6-4180-9B81-6769533ABE47}

第六步:保存更改,然后再次右击MVC项目名称,选择Reload Project。

第七步:如果你的项目引用了三方类库,并且这些类库是针对老版本的MVC编译的话,打开站点根目录下的web.config,在configuration section下增加下面3个bindingRedirect元素: 

 1 <configuration>  
 2   <!--... elements deleted for clarity ...-->  
 3    
 4   <runtime>  
 5     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">  
 6       <dependentAssembly>  
 7         <assemblyIdentity name="System.Web.Helpers"   
 8              publicKeyToken="31bf3856ad364e35" />  
 9         <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>  
10       </dependentAssembly>  
11       <dependentAssembly>  
12         <assemblyIdentity name="System.Web.Mvc"   
13              publicKeyToken="31bf3856ad364e35" />  
14         <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="4.0.0.0"/>  
15       </dependentAssembly>  
16       <dependentAssembly>  
17         <assemblyIdentity name="System.Web.WebPages"   
18              publicKeyToken="31bf3856ad364e35" />  
19         <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>  
20       </dependentAssembly>  
21     </assemblyBinding>  
22   </runtime>  
23 </configuration>  

ok,按照上述操作成功升级~~~

原文地址:https://www.cnblogs.com/X-Jonney/p/6255198.html