VS 2015 Enterprise第二大坑
前言
继上篇文章之后,你会继续跌进大坑,这个坑困扰我一上午,同时也会让你大跌眼镜,如果你遇到了,那么恭喜你提升自身能力和解决能力的时机到了,当然你可以通过本文继续少走不必要的弯路【我也是无意中发现的捷径】!
话题
这个问题出现源于你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介绍
有关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第二大坑的更多相关文章
- Visual Studio 2015 Enterprise - 企业版 - 简体中文
文件名称 文件大小 百度网盘下载 微软官方下载 Visual Studio 2015 Enterprise - 企业版 - 简体中文 3.89GB http://pan.baidu.com/s/1bn ...
- hihocoder 微软编程之美2015 初赛 第二场(暴力+字典序+图论+思维算法)
题目1 : 扑克牌 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 一副不含王的扑克牌由52张牌组成,由红桃.黑桃.梅花.方块4组牌组成,每组13张不同的面值.现在给定52 ...
- 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 ...
- Visual Studio 2015 社区版.专业版.企业版[含安装密钥Pro&Ent]
社区版(Visual Studio Community 2015)可供非企业或开源开发者们免费访问: 在线安装exe:http://download.microsoft.com/download/B/ ...
- 2015 GOOGLE I/O大会看点总结:新的开发工具及云端测试工具
http://ask.android-studio.org/?/article/48 尽管凌晨开始的主题演讲略显晦涩并继承了谷歌一贯的东一句西一句想起啥说啥的混乱风格,但期待用技术改变世界的技 ...
- C++ 用 vector 生成三维数组,并计算行、列、高
//Microsoft Visual Studio 2015 Enterprise //用vector生成三维数组,并计算行.列.高 #include <iostream> #includ ...
- 在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 ...
- Docker容器环境下ASP.NET Core Web API应用程序的调试
本文主要介绍通过Visual Studio 2015 Tools for Docker – Preview插件,在Docker容器环境下,对ASP.NET Core Web API应用程序进行调试.在 ...
- Windows 10 使用C#如何将IE设置为默认浏览器
在WPF XBAP项目中遇到这样一个问题,程序在Windows 10上面无法运行.原因是因为Windows 10默认浏览器是Edge,而XBAP程序是需要在IE上面运行的.于是开始想办法修改Windo ...
随机推荐
- JAXP简介
JAXP(Java API for XML Processing,意为XML处理的Java API) JAXP是SUN公司推出的,集成在javase中的用来解析和操作XML的应用程序接口,解析XML文 ...
- java 测试:iterator foreach for 三种迭代方式哪种更快?
代码: public class main { public static void main(String[] p_args){ ArrayList<String> _l_string ...
- db2循环
db2普通循环结构 while循环 while 条件 do 循环体 end while; LOOP循环 SET V_INDEX = 0; AUTHLOOP: LOOP V_INDEXV_INDEX = ...
- sql 连接数不释放 ,Druid异常:wait millis 40000, active 600, maxActive 600
Hibernate + Spring + Druid 数据库mysql 由于配置如下 <bean id="dataSource" class="com.alibab ...
- 关于px、em和rem的学习笔记!
刚参加前端工作,字体一般使用px来设置大小,在处理响应式界面时对字体的大小变化处理感觉很吃力,得知对字体的大小有三种大小格式设置方式,便想一探究竟,希望可以有所帮助! px px像素(Pixel),相 ...
- Nodejs Promise的一点记录
项目需要,看了点nodejs,其中比较难理解的就是Promise了,记录一下学习bluebird提供的Promise实现. Promise.promisifyAll(obj)方法 作用:把对象的方法属 ...
- 【转】GitHub 排名前 100 的安卓、iOS项目简介
GitHub Android Libraries Top 100 简介 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不 ...
- c++ 宏定义声明类,并在类中实现回调
#include <iostream> #include <windows.h> #include <string> using namespace std; ty ...
- 一鼓作气 博客--第一篇 note1
1. 语言的类型 ,编译型(c,c++),解释型(python,php,ruby,java),编译型可移植性差,优点是运行速度快,解释型语言特点:边执行边翻译,速度慢. 2.翻译官就是机器的解释器,跟 ...
- 广州PostgreSQL用户会技术交流会小记 2015-9-19
广州PostgreSQL用户会技术交流会小记 2015-9-19 今天去了广州PostgreSQL用户会组织的技术交流会 分别有两个session 第一个讲师介绍了他公司使用PostgreSQL-X2 ...