Hướng dẫn nâng cấp từ ASP.NET MVC 3 lên ASP.NET MVC 4

Cách đơn giản nhất để nâng cấp là tạo ra một ASP.NET MVC mới 4 dự án và sao chép tất cả các views, controllers, code, và các file nội dung từ  dự án hiện có 3 MVC cho dự án mới và sau đó để cập nhật các assembly references trong các dự án mới để phù hợp với dự án cũ. Nếu bạn đã thực hiện thay đổi các tập tin Web.config trong dự án MVC 3, bạn cũng phải kết hợp những thay đổi vào file Web.config trong dự án MVC 4.

Để nâng cấp một ứng dụng ASP.NET MVC 3 sang ASP.NET MVC phiên bản 4, làm như sau:

1. Trong tất cả các file Web.config trong dự án (có trong thư mục gốc của dự án, một trong thư mục Views, và một lần xem thư mục cho từng khu vực trong dự án của bạn), thay thế tất cả các thể hiện của các văn bản sau đây:

System.Web.Mvc, Version=3.0.0.0
System.Web.WebPages, Version=1.0.0.0
System.Web.Helpers, Version=1.0.0.0
System.Web.WebPages.Razor, Version=1.0.0.0

bằng đoạn:

System.Web.Mvc, Version=4.0.0.0
System.Web.WebPages, Version=2.0.0.0
System.Web.Helpers, Version=2.0.0.0,
 System.Web.WebPages.Razor, Version=2.0.0.0,

2. Trong file Web.config gốc, cập nhật webPages:Version thành “2.0.0.0” và thêm một khóa mới PreserveLoginUrl có giá trị “true”:

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

3.Trong Solution Explorer, xóa tham chiếu đến System.Web.Mvc (điểm phiên bản 3 DLL). Sau đó, thêm một tham chiếu đến System.Web.Mvc (v4.0.0.0). Đặc biệt, thực hiện những thay đổi sau đây để cập nhật tham chiếu assembly . Chi tiết:

Trong Solution Explorer, xóa tham chiếu tới các assemblies:
System.Web.Mvc (v3.0.0.0)
System.Web.WebPages (v1.0.0.0)
System.Web.Razor (v1.0.0.0)
System.Web.WebPages.Deployment (v1.0.0.0)
System.Web.WebPages.Razor (v1.0.0.0)
Thêm tham chiếu tới các assemblies:
System.Web.Mvc (v4.0.0.0)
System.Web.WebPages (v2.0.0.0)
System.Web.Razor (v2.0.0.0)
System.Web.WebPages.Deployment (v2.0.0.0)
System.Web.WebPages.Razor (v2.0.0.0)

4. Trong Solution Explorer, nhấp chuột phải tên dự án và sau đó chọn Unload dự án. Sau đó, kích chuột phải vào tên một và chọn Edit ProjectName.csproj.

5. Xác định vị trí các yếu tố ProjectTypeGuids và thay thế {E53F8FEA-EAE0-44A6-8774-FFD645390401} với {E3E379DF-F4C6-4180-9B81-6769533ABE47}.

6. Lưu thay , đóng dự án (.csproj), tập tin bạn đang chỉnh sửa, nhấp chuột phải vào dự án Reload Project.

7. Nếu project references, và thư viện của hãng thứ 3 sử dụng phiên bản trước của ASP.NET MVC, mở file Web.config gốc và thêm vào 3 thành phần bindingRedirect như sau

<configuration>
  <!--... elements deleted for clarity ...-->

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" 
             publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" 
             publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="4.0.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" 
             publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>