温馨提示:本文杂而乱,最终不知所云。

Visual Studio 2015 RTM已经于2015年7月20号正式发布,我也在第一时间下载安装了起来。

虽然在5月份就开始使用RC版本,但是还是很期待正式版能带来一些新的功能和稳定性。

喜欢尝鲜的我免不了要折腾一下ASP.NET5,学习一下MVC6,当时的稳定版本是Beta5。

随便建一个MVC6项目感受了一下,很喜欢这种新的项目结构,唯一觉得不爽的就是发布的时候没有了FTP这一项,不知道以后会不会改进。

后来又试着把框架升级到当时还非稳定的Beta6,由于Beta5→Beta6有一些“重大改变”,所以需要修改几处代码,几经折腾总算胜利升级,过程中对DNVN,DNX,DNU等有了更直观的认识,也算没有瞎折腾。

好了,扯了半天还没扯到正题上来。

话说这后来几天忙着升级Windows10,待尘埃落定,看着新装好的WIN10+VS2015心情大好,准备再去研究一下ASP.NET5。

此时Beta6稳定版已如期发布,这是ASP.NET5的发布路线图:

使用稳定版显然不是我的风格,于是就像之前升beta6一样如法炮制把DNX以及各依赖模块升级到最新的Beta7。

然而这次却出现了一些奇怪的问题:

1.首先是项目内容里的引用模块列表直接没有了……

2.在项目属性里,“调试”这一项里的内容全部空白了……(+﹏+)~

3.各种不对劲,重新打开解决方案,重启VS都没有用,尝试编译项目出现如下错误:

请忽略里面的奇怪字符-_-。

具体错误就是:System.IO.FileNotFoundException : Microsoft.DNX.PackageManager啥的。

怎么会找不到文件呢,runtimes好好的躺着它该待的地方呢。

实在摸不着头脑,只好去GitHub上找找看有没有人提这个问题。果然看到这么一个Issues ,说的就是这个问题。

大概意思就是说DNX的一些程序集改名了,但是VS2015RTM没有做相应的修改,导致无法找到正确的路径什么什么的。

需要等Web Tools更新才能解决,然后给了一个临时的解决办法,就是添加一个系统环境变量:WEBPROJ_ENABLEBETA7RENAMES,值设置为0,就可以了。

我试了一下,果然奏效。

没过几天,Github上面又发一篇公告:Breaking DNX renames ,这次具体说了DNX的一些改名情况,如图:

个人感觉新名字确实好看多了\(^o^)/ 。

同时公告也说了怎么适应这个更改,首先就是安装那个Web Tools的更新,他们给放在ASP.NET5的首页上了:

就是这个 ASP.NET 5 preview(Beta6)。

这个需要说一下,点进去下载会看到挺多内容,大部分是语言包,按官方说明是要按需下载并按顺序安装:

首先是DotNetVersionManager-x64.msi(或x68),其实就是DNVM,你机器上的版本可能比这个还新,所以这个不装也行。

然后装那个最大的,WebToolsExtensionsVS14.msi,209M的本体,装起来吭哧吭哧还挺慢的。

 

最后根据需要下载一个语言包装上就行了,可是我没感到有什么卵用。

装过之后的前后对比:

可以看到ASP.NET and Web Tools的版本号已变,名字居然也变纯英文了,所以我很怀疑我刚才装的“语言包”有什么卵用。

* 如果之前设置了那个环境变量,需删之。

最后需要把DNX更新到最最新的版本,其实我经常会去myget.org看新的版本号(可能是病),你也可以去看看:aspnet vnext (小心传染)。

aspnet master 这个页面只提供稳定版不同,vnext提供的是各个程序集目前最新的开发版本,目前最新的开发版本是v1.0.0-beta7-12290。

同时这个页面上提供的NuGet feed Url:https://www.myget.org/F/aspnetvnext/ 是我们需要用到的。

打开VS2015,从工具→NuGet程序包管理器→程序包管理器控制台,打开Nuget控制台,如图:

可以看到程序包源:nuget.org ,默认只有这一个源,点右边的齿轮可以设置更多源。

很简单,在这个设置页面,按上面绿色的加号,把刚才上面提到的那个Feed Url加进去,名字随便起。

这样才能确保DNU在还原程序包的时候,能够找到我们所需要的最新版本的各个程序集,否则只能找到beta6的稳定版。

回到Nuget控制台,这里可以使用dnvm命令去升级DNX,可惜在这个控制台里不怎么好用,很多提示信息不会出来,不知道为什么,而且也不如果彩色的Power Shell酷炫。

所以我们干脆去外面打开Power Shell干活,记得用管理员身份执行:

你第一次在PS里执行DNVM,应该会遇到错误提示"xxxxxxxxx,因为在此系统中禁止执行脚本,xxxxxxxx"什么的,这个问题很好解决,

执行一下:set-ExecutionPolicy RemoteSigned ,选 a [all] ,就可以了,见:

关于DNVM的用法,就那么几个指令,这里不再赘述了,咱们赶紧把DNX更新好结束吧,现在越写越跑偏了。

Dnvm upgrade 指令可以更新最新的“稳定版”,比如现在的beta6,我们想要最新的开发版,就需要执行 dnvm upgrade -unstable ,这样就开始下载最新的DNX beta7了。

同时我们也需要64位的DNX,则再加一个参数: dnvm upgrade -unstable -arch x64  ,这样下载的就是非稳定的最新版的64位DNX:

稍等片刻就下好了,执行dnvm list可以看到现在机器里所有的DNX版本:

回到VS我们的项目里面,修改几处:

1,项目属性里,选择正确的DNX版本:

此处更改会直接体现到global.json配置文件中。

另外Properties\launchSettings.json也应该对应修改一下:

最后记得把project.json里的依赖项版本改成最新的,我是直接用*号了,因为我总升级DNX。

至此,BETA7就可以正常使用在VS中了,看看这令人愉悦的(正在还原……)和最新的程序集们o(∩_∩)o 哈哈:

The End

ASP.NET5,MVC 6,Beta 7与VS 2015 RTM的兼容问题的更多相关文章

  1. ASP.NET MVC 4 RC的JS/CSS打包压缩功能 Scripts.Render和Styles.Render

    打包(Bundling)及压缩(Minification)指的是将多个js文件或css文件打包成单一文件并压缩的做法,如此可减少浏览器需下载多个文件案才能完成网页显示的延迟感,同时通过移除JS/CSS ...

  2. ASP.NET MVC 4 RC的JS/CSS打包压缩功能 (转载)

    ASP.NET MVC 4 RC的JS/CSS打包压缩功能 打包(Bundling)及压缩(Minification)指的是将多个js文件或css文件打包成单一文件并压缩的做法,如此可减少浏览器需下载 ...

  3. (转)ASP.NET MVC 4 RC的JS/CSS打包压缩功能

    转自:http://www.cnblogs.com/shanyou/archive/2012/06/22/2558580.html 打包(Bundling)及压缩(Minification)指的是将多 ...

  4. ASP.NET MVC 4 RC的JS/CSS打包压缩功能

    打包(Bundling)及压缩(Minification)指的是将多个js文件或css文件打包成单一文件并压缩的做法,如此可减少浏览器需下载多个文件案才能完成网页显示的延迟感,同时通过移除JS/CSS ...

  5. 【转】ASP.NET MVC 4 RC的JS/CSS打包压缩功能

    原文链接:http://www.cnblogs.com/shanyou/archive/2012/06/22/2558580.html 打包(Bundling)及压缩(Minification)指的是 ...

  6. ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第一篇:准备工作

    摘要      本文将简要介绍这个文章系列的目的.形式及大体内容.并且完成开始学习这个系列前所必要的准备工作. 前言      ASP.NET MVC作为微软官方的MVC解决方案,推出有一段时间了.可 ...

  7. ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第五篇:MVC整合Ajax

    摘要      本文将从完成“输入数据验证”这个功能出发,逐渐展开ASP.NET MVC与Ajax结合的方法.首先,本文将使用ASP.NET MVC提供的同步方式完成数据验证.而后,将分别结合ASP. ...

  8. ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第六篇:拦截器

    摘要      本文将对“MVC公告发布系统”的发布公告功能添加日志功能和异常处理功能,借此来讨论ASP.NET MVC中拦截器的使用方法. 一个小难题      我们继续完善“MVC公告发布系统”, ...

  9. ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第四篇:传递表单数据

    摘要      本文将完成我们“MVC公告发布系统”的公告发布功能,以此展示在ASP.NET MVC中如何传递处理表单的数据. 前言      通过前几篇文章,我们已经能比较自如的使用ASP.NET ...

随机推荐

  1. 《CLR.via.C#第三版》第二部分第12章节 泛型 读书笔记(六)

    终于讲到泛型了.当初看到这个书名,最想看的就是作者对泛型,委托,反射这些概念的理解.很多人对泛型的理解停留在泛型集合上,刚开始我也是,随着项目越做越多,对待泛型的认识也越来越深刻. 泛型的概念:泛型是 ...

  2. MySQL 复制表结构

    200 ? "200px" : this.width)!important;} --> 介绍 有时候我们需要原封不动的复制一张表的表结构来生成一张新表,MYSQL提供了两种便 ...

  3. Oracle客户端连接远程Oracle服务中文乱码问题

    在本机远程连接远程Oracle服务的时候,写了如下检索语句 select * from sys_employee 结果集中出现了中文乱码,但是远程服务器本身的PL/SQL检索出来没有问题 解决方案: ...

  4. EF:split your EDMX file into multiple diagrams

    我们可以把一个EDMX文件划分为多个类图: 1.在VS中打开EDMX设计器: 2.切换到“模型浏览器”属性设置窗口: 3.在diagrams上右键菜单中选择“添加新的关系图”: 4.在原来的关系图上可 ...

  5. [公告][重要]Senparc.Weixin v4.9.0 & Senparc.Weixin.MP v14.3.104更新说明

    本次升级除了更新了发红包接口等接口之外,最重要的是重构了缓存模块. 如何升级? 之前的缓存是为Container设计的,原先的ContainerCacheStrategy继承自BaseCacheStr ...

  6. Sublime Text3 Package Control 在菜单栏中不显示

    前言 最近由于在 Sublime Text3 下配置了React 开发环境,最近也更新了Sublime Text3 的版本,由此装上了很多的插件.今天打开Sublime 想要通过 `Package C ...

  7. mybatis中的#和$的区别

    #相当于对数据 加上 双引号,$相当于直接显示数据 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是111,那么解析成sq ...

  8. 【非愚人】重要通知:04-01 贴吧继PHP资源之后又。。。

    贴吧继PHP资源之后又取消了JAVA,IOS等资源的贴,现在专注于Net,C++,Linux,平面设计.主要是为了让广大Net程序员具备全栈全平台牛人的潜力,故而取消那些干扰因素.Net的潜力和活力大 ...

  9. 【WP开发】加密篇:单向加密

    单向加密,简单地说就是对数据进行哈希处理,平时我们见得较多的有MD5.SHA1等,都属于单向加密.上一篇文章中,老周跟大家扯了有关双向加密的事,本文咱们就扯一下单向加密吧. 要对数据进行哈希处理也不是 ...

  10. Bower : ENOGIT git is not installed or not in the PATH

    解决方法一: 添加git到window的环境变量中.设置path路径为C:\Program Files\Git\bin 解决方法二: $ set PATH=%PATH%;C:\Program File ...