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

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. [译]Asp.net MVC 之 Contorllers(一)

    Asp.net MVC contorllers 在Ajax全面开花的时代,ASP.NET Web Forms 开始慢慢变得落后.有人说,Ajax已经给了Asp.net致命一击.Ajax使越来越多的控制 ...

  2. 【VC++技术杂谈004】使用微软TTS语音引擎实现文本朗读

    本文主要介绍如何使用微软TTS语音引擎实现文本朗读,以及生成wav格式的声音文件. 1.语音引擎及语音库的安装 TTS(Text-To-Speech)是指文本语音的简称,即通过TTS引擎把文本转化为语 ...

  3. 构建基于Chromium的应用程序

    chromium是google chrome浏览器所采用的内核,最开始由苹果的webkit发展而出,由于webkit在发展上存在分歧,而google希望在开发上有更大的自由度,2013年google决 ...

  4. C#设计模式-享元模式

    在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非常严重,然 ...

  5. WPF入门教程系列十五——WPF中的数据绑定(一)

    使用Windows Presentation Foundation (WPF) 可以很方便的设计出强大的用户界面,同时 WPF提供了数据绑定功能.WPF的数据绑定跟Winform与ASP.NET中的数 ...

  6. JS-underfined is not a function

  7. Android仿微信二维码扫描

    转载:http://blog.csdn.net/xiaanming/article/details/10163203 了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新颖的,从一 ...

  8. CSS中div覆盖另一个div

    将一个div覆盖在另一个div上有两种手段:一是设置margin为负值,二是设置绝对定位. 可以根个人情况设置z-index的值 1->position 为absolute的情况 <htm ...

  9. .NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(一)

    在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了一下FluentValidation验证组件.那里只是概述了一下,并没有对其使用和强大功能做深入研究 ...

  10. 创建外网 ext_net - 每天5分钟玩转 OpenStack(104)

    虽然外部网络是已经存在的网络,但我们还是需要在 Neutron 中定义外部网络的对象,这样 router 才知道如何将租户网络和外部网络连接起来. 上一节我们已经为创建外部网络配置了ML2,本节将通过 ...