(此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注。)

题记:上一篇文章讲述了ASP.NET 5 Beta带来的一些变化,虽然原文最后给出了从beta4升级到beta5的介绍,但是讲的过于简要和模糊。今天就给大家分享下我的经验。

我把我的ASP.NET 5的项目代码从beta 4升级到beta5还是遵从了上篇文章原文中提到的基本步骤。

1,安装或升级DNVM。

如果没有.NET Version Manager (DNVM),需要通过如下代码来安装(如果已经有了执行如下代码也会升级到最新版本):

   1: @powershell -NoProfile -ExecutionPolicy unrestricted -Command "&{$Branch='dev';iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))}"

理论上,执行以上代码就可以把dnvm安装(或升级)到“beta6-10395”,明显的不同是多了一个“update-self”的命令。

如果在已经有beta4的dnvm,那么执行上述命令后,需要重启命令行窗口才能看到最新的dnvm版本;当然我也遇到一个奇怪的问题,就是执行上述代码后死活不能升级,最后无奈,只好先执行第二步(见:升级DNX运行时)的特殊步骤,然后就会看到dnvm也自动升级为最新版本了。

2,升级DNX运行时。

如果正常升级了DNVM,那么无需去设置“DNX_FEED”环境变量,因为最新版的DNVM的默认地址已经是“https://www.nuget.org/api/v2”。现在只需要执行“dnvm upgrade”就可以下载并安装ASP.NET 5的Beta5运行时了(默认是clr x86),也会自动把这个运行时设置激活状态和default别名。

当然如果没有升级DNVM,那么可以设置“DNX_FEED”,然后再升级DNX运行时。

也可以不设置“DNX_FEED”,直接执行”dnvm upgrade“,来先升级到beta5的预发布版本(beta5-12103)。升级到beta5的预发布版本会同时升级dnvm,然后再次执行“dnvm upgrade”,升级到beta5正式发布版本。(这里说的就是上面提到的特殊步骤)。

3,修改project.json中的包引用。

打开解决方案中所有项目的project.json文件的,把其中所有后缀“beta4”的包修改为“beta5”,保存project.json文件后,VS会自动更新到最新的beta5的包。

需要注意的是,xunit的相关包要改为引用beta5的编译版本,即"xunit": "2.1.0-beta3-build3029","xunit.runner.dnx": "2.1.0-beta3-build99"。

和Configuration相关的包,从“Microsoft.Framework.ConfigurationModel”修改为“Microsoft.Framework.Configuration”。

把“Interfaces”后缀的包修改为“Abstractions”。

4,解决代码变更。根据上篇文章提到的更新尤其破坏变更列表(https://github.com/aspnet/announcements/issues?q=milestone%3A1.0.0-beta5),来修改编译有问题的代码。主要的修改有:

  • EF7的迁移修改了代码接口(从属性改为方法),为了避免大量修改代码我是自己重建Migration。如果需要修改,见:https://github.com/aspnet/Announcements/issues/35
  • 把命名空间“Microsoft.Framework.ConfigurationModel”修改为“Microsoft.Framework.Configuration”。
  • IConfiguration.GetSubKey修改为IConfiguration.GetConfigurationSection
  • _GlobalImport.cshtml重命名为_ViewImports.cshtml,修改后VS2015可能会报类型没有引用,不必理会(等着VSWebTools更新)
  • 我之前讲解EF数据迁移的文章提到的代码“db.Database as SqlServerDatabase”要改为“db.Database as RelationalDatabase”
  • 单元测试中,必须显式执行services.AddLogging()

以上就是我升级到beta5的一些经验。有不解的朋友可以在微信上和我交流讨论。

ASP.NET 5探险(4):如何把ASP.NET 5从beta4升级到beta5的更多相关文章

  1. ASP.NET 5探险(3):使用UMEditor并实现图片上传

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:今天将继续上一篇来讲解百度富文本Web编辑器UEditor或UMEditor的使用. ...

  2. ASP.NET 5探险(6):升级ASP.NET 5到beta6

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:微软根据ASP.NET 5的路线图如期发布了beta6,现在我们就来说说beta5升级 ...

  3. ASP.NET Core 性能对比评测(ASP.NET,Python,Java,NodeJS)

    前言 性能是我们日常生活中经常接触到的一个词语,更好的性能意味着能给我们带来更好的用户体检.比如我们在购买手机.显卡.CPU等的时候,可能会更加的关注于这样指标,所以本篇就来做一个性能评测. 性能也一 ...

  4. ASP.NET 5运行时升级到Beta5

    在Visual Studio 2015 RTM和Windows 10正式发布之前,微软把开源.NET升级到了beta5,带来了一些增强和改变.和Visual Studio 2015 RC一起安装的AS ...

  5. asp.net应用程序生命周期和asp.net网页的生命周期

    一.asp.net应用程序生命周期 asp.net应用程序生命周期以浏览器向web服务器(比如IIS服务器)发送请求为起点,先后经历web服务器下的ISAPI(Internet Server Appl ...

  6. asp.net的3个经典范例(ASP.NET Starter Kit ,Duwamish,NET Pet Shop)学习资料

    asp.net的3个经典范例(ASP.NET Starter Kit ,Duwamish,NET Pet Shop)学习资料 NET Pet Shop .NET Pet Shop是一个电子商务的实例, ...

  7. 【ASP.NET Web API教程】1 ASP.NET Web API入门

    原文 [ASP.NET Web API教程]1 ASP.NET Web API入门 Getting Started with ASP.NET Web API第1章 ASP.NET Web API入门 ...

  8. ASP.NET MVC5(一):ASP.NET MVC概览

    ASP.NET MVC概览 ASP.NET MVC是一种构建Web应用程序的框架,它将一般的MVC(Model-View-Controller)模式应用于ASP.NET框架. 1.ASP.NET MV ...

  9. 008.Adding a model to an ASP.NET Core MVC app --【在 asp.net core mvc 中添加一个model (模型)】

    Adding a model to an ASP.NET Core MVC app在 asp.net core mvc 中添加一个model (模型)2017-3-30 8 分钟阅读时长 本文内容1. ...

随机推荐

  1. Linux之图形化shell------dialog

    转自:Linux dialog详解(图形化shell) | 运维生存时间 对话 UNIX: 使用 shell 脚本创建好的图形应用程序---http://www.ibm.com/developerwo ...

  2. Appium 客户端库 API

    ## Appium 客户端库 Appium 有对应以下语言的客户端库: 语言 | 代码 :--|--:[Ruby][rubygems] | [GitHub](https://github.com/ap ...

  3. CentOS 7部署Kafka和Kafka集群

    CentOS 7部署Kafka和Kafka集群 注意事项 需要启动多个shell脚本交互客户端进行验证,运行中的客户端不要停止. 准备工作: 安装java并设置java环境变量,在`/etc/prof ...

  4. PHP带重试功能的curl

    2016年1月13日 10:48:10 星期三 /** * @param string $url 访问链接 * @param string $target 需要重试的标准: 返回结果中是否包含$tar ...

  5. redis pub/sub 实战: 微信语音识别

    2015年5月22日 20:20:20 星期五 效果: 这边对微信说话,  浏览器端及时显示语音识别的文字 注意: 在连接socket.io时, 按下浏览器f12, 如果一直有请求不断的刷, 说明so ...

  6. [ 转] [Android]多式样ProgressBar

    多式样ProgressBar 普通圆形ProgressBar 该类型进度条也就是一个表示运转的过程,例如发送短信,连接网络等等,表示一个过程正在执行中. 一般只要在XML布局中定义就可以了. < ...

  7. mybatis,批量新增、修改,删除

    转载自:http://blog.csdn.net/sanyuesan0000/article/details/19998727 最近需要用到Mybatis批量新增oracle数据库,刚开始在网上找到的 ...

  8. (译)利用ASP.NET加密和解密Web.config中连接字符串

    介绍 这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串 背景描述 在以前的博客中,我写了许多关于介绍 Asp.net, Gridview, SQL Server, A ...

  9. func 和 actin 委托的区别

    一.[action<>]指定那些只有输入参数,没有返回值的委托 1.1定义一个委托: 比如,我们原来写委托: public delegate void myDelegate(string  ...

  10. 如何用Jquery判断在键盘上敲的哪个按键

    有时候我们需要判断我们在键盘上敲了哪个键,这个需要查询下键盘上的键对应的值是多少,比如Enter键是13. 下面是Jquery代码,别忘了引用Jquery包哈. <script type=&qu ...