如何将一个 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 )
升级步骤
- 备份您的项目。本演练将要求您对您的项目文件、 包配置和 web.config 文件进行更改。
- 对于从 Web API 升级到 Web API 2 在 global.asax,更改:
WebApiConfig.Register(GlobalConfiguration.Configuration);
自
GlobalConfiguration.Configure(WebApiConfig.Register);
- 请确保您的项目使用的所有软件包与 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 不兼容。
- 在 Visual Studio 2013 中打开您的项目。
- 删除任何已安装下列 ASP.NET NuGet 包。您将删除这些使用程序包管理器控制台 (PMC)。若要打开 PMC,选择工具菜单然后选择库软件包管理器,然后选择软件包管理器控制台。您的项目可能不包括所有这些。
Microsoft.AspNet.WebPages.Administration
此包通常被添加从 MVC 3 升级到 MVC 4 时。要删除它,在 PMC 中运行以下命令:
Uninstall-Package -Id Microsoft.AspNet.WebPages.Administration
Microsoft-Web-Helpers
此包有已被命名为Microsoft.AspNet.WebHelpers。要删除它,在 PMC 中运行以下命令:
Uninstall-Package -Id Microsoft-Web-Helpers
Microsoft.AspNet.Mvc.FixedDisplayMode
此软件包包含工作周围又被固定在 MVC 5 的 MVC 4 中的一个 bug。要删除它,在 PMC 中运行以下命令:
Uninstall-Package -Id Microsoft.AspNet.Mvc.FixedDisplayModes
- 升级使用 PMC 的所有 ASP.NET NuGet 包。在 PMC,请运行以下命令:
Update-Package
不带任何参数的 Update-Package命令将更新的每个包。你可以使用 ID 参数单独更新的软件包。有关更新命令的详细信息,运行get-help update-package.
更新应用程序的web.config文件
ASP.NET MVC 5 和 Web API 2 带来的新功能,包括属性路由、 身份验证筛选器,以及更多的主机。请参阅http://www.asp.net/vnext更多详细信息。
本演练将指导您升级到最新版本的应用程序所需的步骤。
这篇文章是写的 Youngjune 香港和瑞克 · 安德森 ( @RickAndMSFT )
WebApiConfig.Register(GlobalConfiguration.Configuration);
自
GlobalConfiguration.Configure(WebApiConfig.Register);
|
包 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 |
没有跨版本兼容性间主要 ASP.NET 软件包。例如,MVC 5 是与仅剃刀 3 和剃刀 2 不兼容。
Microsoft.AspNet.WebPages.Administration
此包通常被添加从 MVC 3 升级到 MVC 4 时。要删除它,在 PMC 中运行以下命令:Uninstall-Package -Id Microsoft.AspNet.WebPages.AdministrationMicrosoft-Web-Helpers
此包有已被命名为Microsoft.AspNet.WebHelpers。要删除它,在 PMC 中运行以下命令:Uninstall-Package -Id Microsoft-Web-HelpersMicrosoft.AspNet.Mvc.FixedDisplayMode
此软件包包含工作周围又被固定在 MVC 5 的 MVC 4 中的一个 bug。要删除它,在 PMC 中运行以下命令:Uninstall-Package -Id Microsoft.AspNet.Mvc.FixedDisplayModes
Update-Package
不带任何参数的 Update-Package命令将更新的每个包。你可以使用 ID 参数单独更新的软件包。有关更新命令的详细信息,运行get-help update-package.
请确保在应用程序的web.config文件,不在视图文件夹中的web.config文件中进行这些更改。
查找 <runtime>/<assemblyBinding>一节,并进行以下更改:
- 在"System.Web.Mvc"的名称属性与元素,更改版本号从"4.0.0.0"到"为 5.0.0.0"。(在该元素中的两个更改)。
- 在名称的元素中的属性"System.Web.Helpers"和"System.Web.WebPages"更改版本号从"2.0.0.0"到"3.0.0.0"。四将发生更改,两个在每个元素。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<!--Two elements removed for Clarity -->
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<!--WebGrease element removed for Clarity -->
</assemblyBinding - 找到
<appSettings>部分并更新至 3.0.0.0 从 2.0.0.0.0 webpages:version,如下所示:<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings> - 移除任何信任级别而不是完整。例如:
<securityPolicy>
<!--<trustLevel name="Medium" policyFile="web_mediumtrust.config"/>-->
</securityPolicy>
更新在视图文件夹下的web.config文件
如果您的应用程序使用的领域,你还需要更新每个web.config文件中的每个区域文件夹的子文件夹意见。
- 更新到版本"为 5.0.0.0"从版本"4.0.0.0"包含"System.Web.Mvc"的所有元素。
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<!--Elements removed for Clarity.-->
</namespaces>
</pages>
</system.web.webPages.razor>-->
<pages validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<controls>
<add assembly="System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
</pages>
</system.web> - 更新到版本"3.0.0.0"从版本"2.0.0.0"包含"System.Web.WebPages.Razor"的所有元素。如果这一节中包含"System.Web.WebPages",更新这些元素从版本"2.0.0.0"到"3.0.0.0"的版本
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections> - 如果您在上一步中删除
Microsoft-Web-HelpersNuGet 包,安装Microsoft.AspNet.WebHelpersPMC 中的以下命令:
Install-Package -Id Microsoft.AspNet.WebHelpers
最后的步骤
生成并测试应用程序。
从项目文件中删除 MVC 4 项目类型的 GUID。
- 在解决方案资源管理器中,右击项目名称,然后选择卸载项目.
- 用鼠标右键单击该项目,然后选择编辑 ProjectName.csproj。
- 定位的
ProjectTypeGuids元素,然后删除 MVC 4 项目 GUID,{E3E379DF-F4C6-4180-9B81-6769533ABE47}. - 保存并关闭打开的项目文件。
- 用鼠标右键单击该项目,然后选择重新加载项目.
如何将一个 ASP.NET MVC 4 和 Web API 项目升级到 ASP.NET MVC 5 和 Web API 2的更多相关文章
- asp.net mvc 4 项目升级到 asp.net mvc5
一.开始 1.打开或新建asp.net mvc 4项目 2.修改 global.asax文件 原: WebApiConfig.Register(GlobalConfiguration.Configur ...
- ASP.NET Identity 2集成到MVC5项目--笔记01
Identiry2是微软推出的Identity的升级版本,较之上一个版本更加易于扩展,总之更好用.如果需要具体细节.网上具体参考Identity2源代码下载 参考文章 在项目中,是不太想直接把这一堆堆 ...
- ASP.NET Identity 2集成到MVC5项目--笔记02
ASP.NET Identity 2集成到MVC5项目--笔记01 ASP.NET Identity 2集成到MVC5项目--笔记02 继上一篇,本篇主要是实现邮件.用户名登陆和登陆前邮件认证. 1. ...
- Web自动化测试项目搭建目录
Web自动化测试项目搭建(一) 需求与设计 Web自动化测试项目(二)BasePage实现 Web自动化测试项目(三)用例的组织与运行 Web自动化测试项目(四)测试报告 Web自动化测试项目(五)测 ...
- web系统开发为什么用asp.net MVC,为什么不用?
向高手咨询下,现在asp.net MVC很流行,但我好像提不起兴趣.企业级Web应用,使用纯HTML+jquery交互+Http Handler(或WebAPI),不是挺好的吗?有很多优点:1.Ht ...
- ABP示例程序-使用AngularJs,ASP.NET MVC,Web API和EntityFramework创建N层的单页面Web应用
本片文章翻译自ABP在CodeProject上的一个简单示例程序,网站上的程序是用ABP之前的版本创建的,模板创建界面及工程文档有所改变,本文基于最新的模板创建.通过这个简单的示例可以对ABP有个更深 ...
- [水煮 ASP.NET Web API2 方法论](1-1)在MVC 应用程序中添加 ASP.NET Web API
问题 怎么样将 Asp.Net Web Api 加入到现有的 Asp.Net MVC 项目中 解决方案 在 Visual Studio 2012 中就已经把 Asp.Net Web Api 自动地整合 ...
- Announcing the Release of ASP.NET MVC 5.1, ASP.NET Web API 2.1 and ASP.NET Web Pages 3.1 for VS2012
The NuGet packages for ASP.NET MVC 5.1, ASP.NET Web API 2.1 and ASP.NET Web Pages 3.1 are now live o ...
- 在 CentOS 7(Linux)上部署ASP.NET Core 2.2 Web应用程序(Tengine、Asp.Net Core MVC、Centos 7、MySql)
一.前言 1.简单记录一下Linux CentOS 7中安装与配置Tengine的详细步骤. 2.简单比较一下Tengine 和Nginx 3.搭建Asp.net Core和部署 Web程序 4.总结 ...
随机推荐
- 《Python 学习手册4th》 第九章 元组、文件及其他
''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书) “重点 ...
- 使用DDMS测试安卓手机APP的性能(android)
安装/配置: 通过另外一个工具也可以测试手机客户端APP的性能,这就是android开发包中的DDMS工具(Dalvik Debug Monitor Service),先来说一下android开发包的 ...
- oc_转_构造对象的方法,以及类的继承
一.构造方法 (一)构造方法的调用 完整的创建一个可用的对象:Person *p=[Person new]; New方法的内部会分别调用两个方法来完成2件事情: 1) 使用alloc方法来分配存储空间 ...
- hdfs[命令] dfsadmin
Usage: java DFSAdminNote: Administrative commands can only be run as the HDFS superuser. [-report] [ ...
- [Hive - LanguageManual] Describe
Describe Describe Database Describe Table/View/Column Display Column Statistics Describe Partition D ...
- Apache Maven 入门
Apache Maven 入门篇 ( 上 ) Apache Maven 入门篇 ( 下 ) ~$mvn archetype:generate -DgroupId=com.mycompany.hello ...
- Downloading the Google Cloud Storage Client Library
Google Cloud Storage client是一个客户端库,与任何一个生产环境使用的App Engine版本都相互独立.如果你想使用App Engine Development server ...
- 多线程之 CountDownLatch
CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. CountDownLatch如其所写,是一个倒计数的锁存器,当计数减至0时触发特定 ...
- SSH原理与运用一:远程登录(转)
原文:http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html 作者: 阮一峰 SSH是每一台Linux电脑的标准配置. 随着Linux ...
- homework-04
1.准备工作 本次结对编程我们对项目本身就行了分工,既然是测试来驱动开发,那么我们就把本次工作分成了测试与生成两个部分,小明同学负责生成测试数据,而我写测试程序检测测试结果是否正确,相对来说还是小明同 ...