如何将一个 ASP.NET MVC 4 和 Web API 项目升级到 ASP.NET MVC 5 和 Web API 2

----转自 微软官网www.asp.net/mvc/

ASP.NET MVC 5 和 Web API 2 带来的新功能,包括属性路由、 身份验证筛选器,以及更多的主机。请参阅http://www.asp.net/vnext更多详细信息。

本演练将指导您升级到最新版本的应用程序所需的步骤。

注: 请参阅 ASP.NET 和 Visual Studio 2013 发行说明 Web 工具 对打破 MVC 4 和 Web API 到下一个版本的更改的信息。

这篇文章是写的 Youngjune 香港和瑞克 · 安德森 ( @RickAndMSFT )

升级步骤

  1. 备份您的项目。本演练将要求您对您的项目文件、 包配置和 web.config 文件进行更改。
  2. 对于从 Web API 升级到 Web API 2 在 global.asax,更改:
      
     
  3. 请确保您的项目使用的所有软件包与 MVC 5 和 Web API 2 兼容。下面的表显示了 MVC 4 和 Web API 比需要更改相关的软件包。如果您有一个包,取决于下面列出的包之一,请联系出版商必须得到与 MVC 5 和 Web API 2 兼容的较新版本。如果你有这些软件包的源代码,你应该用新的程序集的 MVC 5 和 Web API 2 重新编译它们。

    包 Id                                           

    旧版本

    新版本

    Microsoft.AspNet.Razor

    2.0.x.x

    3.0.0

    Microsoft.AspNet.WebPages

    2.0.x.x

    3.0.0

    Microsoft.AspNet.WebPages.WebData

    2.0.x.x

    3.0.0

    Microsoft.AspNet.WebPages.OAuth

    2.0.x.x

    3.0.0

    Microsoft.AspNet.Mvc

    4.0.x.x

    5.0.0

    Microsoft.AspNet.Mvc.Facebook

    4.0.x.x

    5.0.0

    Microsoft.AspNet.WebApi.Core

    4.0.x.x

    5.0.0

    Microsoft.AspNet.WebApi.SelfHost

    4.0.x.x

    5.0.0

    Microsoft.AspNet.WebApi.Client

    4.0.x.x

    5.0.0

    Microsoft.AspNet.WebApi.OData

    4.0.x.x

    5.0.0

    Microsoft.AspNet.WebApi

    4.0.x.x

    5.0.0

    Microsoft.AspNet.WebApi.WebHost

    4.0.x.x

    5.0.0

    Microsoft.AspNet.WebApi.Tracing

    4.0.x.x

    5.0.0

    Microsoft.AspNet.WebApi.HelpPage

    4.0.x.x

    5.0.0

    Microsoft.Net.Http

    2.0.x。

    2.2.x。

    Microsoft.Data.OData

    5.2.x

    5.6.x

    System.Spatial

    5.2.x

    5.6.x

    Microsoft.Data.Edm

    5.2.x

    5.6.x

    Microsoft.AspNet.Mvc.FixedDisplayModes

     

    删除

    Microsoft.AspNet.WebPages.Administration

     

    删除

    微软-Web-佣工

     

    Microsoft.AspNet.WebHelpers


    注:微软-Web-佣工已被 Microsoft.AspNet.WebHelpers 所取代。您应该首先,删除旧的软件包,然后安装更新包。

    没有跨版本兼容性间主要 ASP.NET 软件包。例如,MVC 5 是与仅剃刀 3 和剃刀 2 不兼容。

  4. 在 Visual Studio 2013 中打开您的项目。
  5. 删除任何已安装下列 ASP.NET NuGet 包。您将删除这些使用程序包管理器控制台 (PMC)。若要打开 PMC,选择工具菜单然后选择库软件包管理器,然后选择软件包管理器控制台。您的项目可能不包括所有这些。
    1. Microsoft.AspNet.WebPages.Administration
      此包通常被添加从 MVC 3 升级到 MVC 4 时。要删除它,在 PMC 中运行以下命令:

      Uninstall-Package -Id Microsoft.AspNet.WebPages.Administration
    2. Microsoft-Web-Helpers
      此包有已被命名为Microsoft.AspNet.WebHelpers要删除它,在 PMC 中运行以下命令:
      Uninstall-Package -Id Microsoft-Web-Helpers
    3. Microsoft.AspNet.Mvc.FixedDisplayMode 
      此软件包包含工作周围又被固定在 MVC 5 的 MVC 4 中的一个 bug。要删除它,在 PMC 中运行以下命令:

      Uninstall-Package -Id Microsoft.AspNet.Mvc.FixedDisplayModes
  6. 升级使用 PMC 的所有 ASP.NET NuGet 包。在 PMC,请运行以下命令:
    Update-Package
    不带任何参数的 Update-Package命令将更新的每个包。你可以使用 ID 参数单独更新的软件包。有关更新命令的详细信息,运行get-help update-package
    .

更新应用程序的web.config文件

请确保在应用程序的web.config文件,不在视图文件夹中的web.config文件中进行这些更改。

查找 <runtime>/<assemblyBinding>一节,并进行以下更改:

  1. 在"System.Web.Mvc"的名称属性与元素,更改版本号从"4.0.0.0"到"为 5.0.0.0"。(在该元素中的两个更改)。
  2. 在名称的元素中的属性"System.Web.Helpers"和"System.Web.WebPages"更改版本号从"2.0.0.0"到"3.0.0.0"。四将发生更改,两个在每个元素。
  3. 找到<appSettings>部分并更新至 3.0.0.0 从 2.0.0.0.0 webpages:version,如下所示:
  4. 移除任何信任级别而不是完整。例如:
    
    

更新在视图文件夹下的web.config文件

如果您的应用程序使用的领域,你还需要更新每个web.config文件中的每个区域文件夹的子文件夹意见

  1. 更新到版本"为 5.0.0.0"从版本"4.0.0.0"包含"System.Web.Mvc"的所有元素。
     
  2. 更新到版本"3.0.0.0"从版本"2.0.0.0"包含"System.Web.WebPages.Razor"的所有元素。如果这一节中包含"System.Web.WebPages",更新这些元素从版本"2.0.0.0"到"3.0.0.0"的版本
  3. 如果您在上一步中删除Microsoft-Web-HelpersNuGet 包,安装Microsoft.AspNet.WebHelpers PMC 中的以下命令:
    Install-Package -Id  Microsoft.AspNet.WebHelpers

最后的步骤

生成并测试应用程序。

从项目文件中删除 MVC 4 项目类型的 GUID。

  1. 在解决方案资源管理器中,右击项目名称,然后选择卸载项目.
  2. 用鼠标右键单击该项目,然后选择编辑 ProjectName.csproj。
  3. 定位的ProjectTypeGuids 元素,然后删除 MVC 4 项目 GUID, {E3E379DF-F4C6-4180-9B81-6769533ABE47}.
  4. 保存并关闭打开的项目文件。
  5. 用鼠标右键单击该项目,然后选择重新加载项目.

转载于:https://www.cnblogs.com/fcu3dx/p/3505596.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值