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

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. python自动化测试(3)- 自动化框架及工具

    python自动化测试(3) 自动化框架及工具 1   概述 手续的关于测试的方法论,都是建立在之前的文章里面提到的观点: 功能测试不建议做自动化 接口测试性价比最高 接口测试可以做自动化 后面所谈到 ...

  2. 安装 mysql-5.7.5-m15-winx64

    win7 64位下如何安装配置mysql-5.7.5-m15-winx64 距离上次安装MySQL已经过去好久了.步骤这些,有可能会忘记.简单记录一下吧.(参考了一些网络上的博客.) 1.mysql- ...

  3. 玩转动态编译 - 高级篇:二,IL设置静态属性,字段和类型转换

    静态属性赋值 先来看 Reflector反射出的IL源码(感谢Moen的提示),这次用 Release模式编译,去掉那些无用的辅助指令 public void AAA(string s) { MyCl ...

  4. C语言 · 送分啦

    问题描述 这题想得分吗?想,请输出"yes":不想,请输出"no". 输出格式 输出包括一行,为"yes"或"no". ...

  5. Java 浅析三大特性之一继承

    上文Java 浅析三大特性之一封装我们说到Java是一个注重编写类,注重于代码和功能复用的语言.Java实现代码复用的方式有很多,这里介绍一个重要的复用方式--继承. 在介绍继承之前,我们要明确一点, ...

  6. Trace1:Default Trace

    sql server trace 是一个轻量级的追踪工具,对追踪数据库的行为很有用,因此,sql server内置一个trace(default trace). 1,sql server 内置Defa ...

  7. Mac OS apache php配置

    1.进入Apache配置文件sudo vi /etc/apache2/httpd.conf    找到#LoadModule php5_module libexec/apache2/libphp5.s ...

  8. JSP页面静态化

    Ps:好久没写博客了,不是我太懒,是因为苦逼的我出差去上海了,天天加班 刚回成都.... 今天说说jsp页面静态化,知道静态化的朋友都不陌生,说白了就是访问后缀是html 而不是jsp. 没听说过静态 ...

  9. Hammer.js分析(二)——manager.js

    “Manager”是所有识别器实例的容器,它为你设置的元素安装了交互事件监听器,并设置了触摸事件特性. manager.js中的代码会涉及到input.js和recoginzer.js中的内容,这里会 ...

  10. Coreseek Windows下安装调试

    由于项目需要全文检索,后面就去网上查了下资料,找到了Sphinx[中文是狮身人面像]这个全文检索引擎,听说挺好用的,不过没有中文分词.后面又去找了一下,找到了Coreseek,一款中文全文检索/搜索软 ...