前言

继上篇文章之后,你会继续跌进大坑,这个坑困扰我一上午,同时也会让你大跌眼镜,如果你遇到了,那么恭喜你提升自身能力和解决能力的时机到了,当然你可以通过本文继续少走不必要的弯路【我也是无意中发现的捷径】!

话题

这个问题出现源于你Dnx执行环境的升级,你可以在PowerShell中通过 dnvm list 查看你版本如下

这告诉你两件事:(1)你安装了两个版本的Dnx 1.0.-beta5和1.0.0-beta6 (2)看见default(默认)没,意思是你项目中默认启动的是 1.0.-beta6 版本,通过下面你也会知道确实是这么回事。

好了,我们新建一个项目我起个名叫 FirstStudy ,通过昨天的学习,现在是生成也没错了,看见新建默认出现的页面,如下:【是不是有点想马上运行的赶脚】

来吧,走一个,尼玛!!我很想说脏话了,好吧,还是注意点素质!好好就新建一个项目,生成时你给我出错,把你毛病给治好了,现在运行你又来个直接出错,简直了.....错误如下:

好吧,既然出错就老老实实的解决吧!大概意思就是运行时要匹配确定的framework,你看到什么了?? Project.json 【如果不知道新建项目中各个文件的用途请参照汤姆大叔MVC系列即可】,这是程序集进行配置的地方,这是个关键,同时我很纳闷默认添加的Dnx版本是4.5.1和5.0如下

所以第一个想法就是将Project.json中的Dnx版本改为4.5即可,走你!等待程序包还原,生成解决方案时结果出错:

这说明在4.5版本中没有这命名空间,同时也说明不是这里的错!上面出错时也有说运行时的版本为 1.0.-beta6 ,此时我们也应该想到Project.json中有一个 dependencies 这个节点中的程序集就是Dnx4.5.1或者5.0中下的程序集【当你修改这里面的程序集版本再进行生成时,Dnx4.5.1或者5.0下的版本也会相应进行自动修改】,我发现创建时这里的版本如下:

通过这图我们知道这里面的版本结尾中都为 beta5 ,同时我们也知道我们通过PowerShell知道创建的版本为 beta6 ,如果你还不信我们看看项目中属性创建时Dnx SDK版本,我创建的项目FirstStudy属性为

通过这我们知道:我们Dnx执行环境为 beta6 ,而当创建项目时程序集的版本却为 beta5  !!所以说没有一劳永逸的事情,如果你更新了Dnx,VS 2015还没达到完美同步跟着你更新,那它怎么知道你更新了呢!!于是乎,我Project.json中依赖项中的程序集改为beta 6的,结果不太理想,生成出错,应该是有些还未有版本6的吧!!那只能另想他法了,那我反过来将项目中的属性Dnx Sdk改为beta5试试,说做就做如下

很遗憾生成就出错如下

就修改一下Dnx SDK版本连命名空间System都找不到了,看来路又走错了!至少我们确定肯定是Dnx版本的问题,到目前为止,我们想想项目下的文件是不是有些还是 beta6 还没进行修改呢?config.json相当于Web.Config比如进行数据连接排除,bower.json和gulpfile是和前台有关的东东,package.json相关gulp的版本,有一个文件我们忽略了,有没有,那就是global.json,全局什么东西,没准是全局配置呢?打开看看发现还真有关于Dnx版本的配置!

注意

这是我之后发现的问题,这里默认是版本是你创建时的版本也就是Dnvm list中default,当你在项目属性中进行更改为beta5生成后这里也会相应的更改为项目属性中的版本,可以说是同步的(global.json中Dnx版本随项目属性版本改变而改变)!


于是将 global.json 版本改为beta 5,最后还是错误如下:

此时已经非常绝望了,能将版本改的都已经进行修改了。想了两分钟,不知道哪来的天马行空的想法!

将Project.json中节点frameworks下的版本Dnx 4.5.1更改为4.5,等待其程序集还原后,再生成下,此时肯定会有错误,之前已经尝试,接着我将其版本改回Dnx 4.5.1,依然是等待其程序集还原,此时再生成下,结果让你大跌眼镜,全部生成成功!

结果F5运行下试试看,显然成功了!!!出现了仰慕已久而迟迟未出现的Asp.Net 5界面

至此从安装到生成到运行一切圆满的落下帷幕,so perfect。接下来可以进行愉快的Asp.Net 5之旅了!

总结

(1)创建项目运行出现错误的原因:当你将Dnx版本升级为beta6时,此时你创建的项目中程序集版本却是beta5。

(2)奇葩解决方案:将项目属性Dnx SDK版本改为beta 5,此时再重新生成下此时global.json将被项目属性版本覆盖,当然你也可以进行手动修改。(将Project.json中程序集版本改为beta 6行不通,也就是说只能讲项目版本进行降级而非升级),接下来就是:

将Project.json中节点frameworks下的版本Dnx 4.5.1更改为4.5,等待其程序集还原后,再生成下,此时肯定会有错误,之前已经尝试,接着我将其版本改回Dnx 4.5.1,依然是等待其程序集还原,此时再生成下,结果让你大跌眼镜,全部生成成功!

上述是我能想到的解决问题的方案,如果你遇见相同问题,用别的方案解决了的话,望告知,让我也能更好的学习!

补充

官网有关DNX介绍

Introduce DNX

有关Dnx以及指定Dnx Version Runtime

Specify Dnx Default Runtime Version

详细介绍DNX/DNVM/DNU

Introduce DNX/DNVM/DNU and how to install/run etc

VS 2015 Enterprise第二大坑的更多相关文章

  1. Visual Studio 2015 Enterprise - 企业版 - 简体中文

    文件名称 文件大小 百度网盘下载 微软官方下载 Visual Studio 2015 Enterprise - 企业版 - 简体中文 3.89GB http://pan.baidu.com/s/1bn ...

  2. hihocoder 微软编程之美2015 初赛 第二场(暴力+字典序+图论+思维算法)

    题目1 : 扑克牌 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 一副不含王的扑克牌由52张牌组成,由红桃.黑桃.梅花.方块4组牌组成,每组13张不同的面值.现在给定52 ...

  3. Change visual studio 2015 enterprise installation path(转)

    I would like to install VS2015 in a drive different than C:. The problem is that when I run the inst ...

  4. Visual Studio 2015 社区版.专业版.企业版[含安装密钥Pro&Ent]

    社区版(Visual Studio Community 2015)可供非企业或开源开发者们免费访问: 在线安装exe:http://download.microsoft.com/download/B/ ...

  5. 2015 GOOGLE I/O大会看点总结:新的开发工具及云端测试工具

        http://ask.android-studio.org/?/article/48 尽管凌晨开始的主题演讲略显晦涩并继承了谷歌一贯的东一句西一句想起啥说啥的混乱风格,但期待用技术改变世界的技 ...

  6. C++ 用 vector 生成三维数组,并计算行、列、高

    //Microsoft Visual Studio 2015 Enterprise //用vector生成三维数组,并计算行.列.高 #include <iostream> #includ ...

  7. 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)

    环境准备 1.亚马逊EC2 Windows Server 2016 with Container 2.Visual Studio 2015 Enterprise(Profresianal要装Updat ...

  8. Docker容器环境下ASP.NET Core Web API应用程序的调试

    本文主要介绍通过Visual Studio 2015 Tools for Docker – Preview插件,在Docker容器环境下,对ASP.NET Core Web API应用程序进行调试.在 ...

  9. Windows 10 使用C#如何将IE设置为默认浏览器

    在WPF XBAP项目中遇到这样一个问题,程序在Windows 10上面无法运行.原因是因为Windows 10默认浏览器是Edge,而XBAP程序是需要在IE上面运行的.于是开始想办法修改Windo ...

随机推荐

  1. 初探javascript

    javascript是一种在网络广泛应用的脚本语言,虽然名字与java相近,但其实两者并没有直接的关系,脚本语言是一种为了便于操作和拓展功能而开发出来的解释性语言,不同于传统的编程语言,脚本语言不需要 ...

  2. C++ Primer Plus 第六版笔记

    C++ Primer Plus 第六版笔记 关于对象声明的思考 转自:http://www.cnblogs.com/weiqubo/archive/2009/11/02/1930042.html C+ ...

  3. 最简单的android自定义进度条样式

    一.自定义圆形进度条样式 1.在安卓项目drawable目录下新建一个xml文件如下:<?xml version="1.0" encoding="utf-8&quo ...

  4. sublime下安装ctags

    sublime下安装ctags 标签: sublime   当我们阅读代码时, 会遇到很多不明确的函数名, 此时, 我们需要查看这个函数的定义的地方, 在sublime下我们需要安装一个插件, Cta ...

  5. Android事件分发传递

    一.与触摸事件有关的几个方法 boolean dispatchTouchEvent(MotionEvent ev); 接收到触摸事件时,是否分发事件到下面的View 返回true:分发触摸事件 返回f ...

  6. JVM中对象的销毁

    1.可达性分析算法: 可达性分析算法用来寻找将要销毁的对象,它的基本思路是:通过一系列的称为“GC ROOTs”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径成为引用链,当一个对象到GC ...

  7. LabVIEW 吸星大法 - 看见的好东西都是我的(上篇)

    前言 写了多年的LabVIEW程序,你是否面临这样的问题 总是在做一些重复的工作,感觉很没有意思: 总在不停的写代码,做类似的控件,实现相同的功能,丝毫没有成就感: 总在天加班,没有时间去提高自己; ...

  8. FastReport.Net 常用功能总汇

    一.常用控件 文本框:输入文字或表达式 表格:设置表格的行列数,输入数字或表达式 子报表:放置子报表后,系统会自动增加一个页面,你可以在此页面上设计需要的报表.系统在打印处理时,先按主报表打印,当碰到 ...

  9. 利用@media screen实现网页布局的自适应

    利用@media screen实现网页布局的自适应 优点:无需插件和手机主题,对移动设备友好,能够适应各种窗口大小.只需在CSS中添加@media screen属性,根据浏览器宽度判断并输出不同的长宽 ...

  10. windows和linux中搭建python集成开发环境IDE——如何设置多个python环境

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...