Saturday, March 19, 2011

How to upgrade an ASP.NET MVC 2 Project to ASP.NET MVC 3

ASP.NET MVC 3 can be installed side by side with ASP.NET MVC 2 on the same computer, which gives you flexibility in choosing when to upgrade an ASP.NET MVC 2 application to ASP.NET MVC 3.

To manually upgrade an existing ASP.NET MVC 2 application to version 3, do the following:
  1. Create a new empty ASP.NET MVC 3 project on your computer. This project will contain some files that are required for the upgrade.
  2. Copy the following files from the ASP.NET MVC 3 project into the corresponding location of your ASP.NET MVC 2 project:
    • /Scripts/jquery.unobtrusive-ajax.js
    • /Scripts/jquery.unobtrusive-ajax.min.js
    • /Scripts/jquery.validate.unobtrusive.js
    • /Scripts/jquery.validate.unobtrusive.min.js
    • /Views/Web.config
  3. If your ASP.NET MVC 2 project contains any areas, copy the /Views/Web.config file to the Views folder of each area.
  4. In both Web.config files in the ASP.NET MVC 2 project, globally search and replace the ASP.NET MVC version. Find the following:
    System.Web.Mvc, Version=2.0.0.0
    Replace it with the following:
    System.Web.Mvc, Version=3.0.0.0
  5. In Solution Explorer, delete the reference to System.Web.Mvc (which points to the DLL from version 2), then add a reference to System.Web.Mvc (v3.0.0.0).
  6. Add a reference to System.WebPages.dll and System.Web.Helpers.dll. These assemblies are located in the following folders:
    • %ProgramFiles%\ Microsoft ASP.NET\ASP.NET MVC 3\Assemblies
    • %ProgramFiles%\ Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies
  7. In Solution Explorer, right-click the project name and then select Unload Project. Then right-click the project name again and select Edit ProjectName.csproj.
  8. Locate the ProjectTypeGuids element and replace {F85E285D-A4E0-4152-9332-AB1D724D3325} with {E53F8FEA-EAE0-44A6-8774-FFD645390401}.
  9. Save the changes, right-click the project, and then select Reload Project.
  10. In the application’s root Web.config file, add the following settings to the assemblies section.
    <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" />
  11. If the project references any third-party libraries that are compiled using ASP.NET MVC 2, add the following bindingRedirect element to the Web.config file in the application root under the configuration section:
    <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>
    Reference:
    http://www.asp.net/learn/whitepapers/mvc3-release-notes#upgrading


No comments:

Post a Comment