若要将现有 ASP.NET MVC 2 应用程序手动升级到版本 3,需要执行如下操作步骤:
1. 在您的计算机上新建一个空的 ASP.NET MVC 3 项目。此项目将包含升级所需的一些文件。
2. 将以下文件从 ASP.NET MVC 3 项目复制到您的 ASP.NET MVC 2 项目的相应位置中。您将需要更新对 jQuery 库的所有引用修改成新的库的名字 (jQuery-1.5.1.js)【MVC里使用的jQuery,带有版本号,给省升级带来了些麻烦】:
· /Views/Web.config
· /packages.config
· /scripts/*.js
· /Content/themes/*.*
3. 将空白 ASP.NET MVC 3 项目解决方案的根目录中的 packages 文件夹复制到您的解决方案的根目录(位于 .sln 文件所在的目录中)中。
4. 如果你的 ASP.NET MVC 2 项目包含任何区域,则将 /Views/Web.config 文件复制到每个Areas的 Views 文件夹中。
5. 在 ASP.NET MVC 2 项目的两个 Web.config 文件中,全局搜索并替换 ASP.NET MVC 版本。查找以下内容:
System.Web.Mvc, Version=2.0.0.0
将其替换为以下内容:
System.Web.Mvc, Version=3.0.0.0
6. 在“解决方案资源管理器”中,删除对 System.Web.Mvc 的引用(其指向版本 2 中的 DLL),然后,添加对 System.Web.Mvc (v3.0.0.0) 的引用。
7. 添加对 System.WebPages.dll 和 System.Web.Helpers.dll 的引用。这些程序集位于以下文件夹中:
· %ProgramFiles%\ Microsoft ASP.NET\ASP.NET MVC 3\Assemblies
· %ProgramFiles%\ Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies
8. 在“解决方案资源管理器”中右击项目名称,然后选择“卸载项目”。然后,再次右击项目名称,并选择“编辑 项目名.csproj”。
9. 查找 ProjectTypeGuids 元素并将 {F85E285D-A4E0-4152-9332-AB1D724D3325} 替换为 {E53F8FEA-EAE0-44A6-8774-FFD645390401}。
10. 保存更改,右击项目,然后选择“重新加载项目”。
11. 在应用程序的根 Web.config 文件中,将以下设置添加到 assemblies 节中。
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
12. 如果项目引用任何使用 ASP.NET MVC 2 编译的第三方库,则将以下突出显示的 bindingRedirect 元素添加到应用程序根目录中的 Web.config 文件的 configuration 节下面。
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0"/> </dependentAssembly> </assemblyBinding> </runtime>
13.将相关依赖的项目中的MVC assembly
System.Web.Mvc, Version=2.0.0.0
将其替换为以下内容:
System.Web.Mvc, Version=3.0.0.0
ok大功告成可以这样MVC2项目就成功升级到MVC3了。