VS 2015.为ASP.NET 5 Web项目设置正确的目标框架

我在Visual Studio 2015中创build了新的ASP.NET 5 MVC项目。在项目创build向导中,我select了显示.NET框架4.6的模板,然后在下一个屏幕上从ASP.NET 5 Preview中select“Web Application”模板。

但是,创build之后,项目似乎只在project.json的“框架”部分列出了“dnx451”和“dnxcore50”:

"frameworks": { "dnx451": { }, "dnxcore50": { } }, 

我试图把“dnx451”改成“dnx46”。 该项目已经build成好,但当我试图运行它,我得到了以下错误信息:

当前的运行时目标框架与“…”不兼容。

当前运行时目标框架:“DNX,版本= v4.5.1(dnx451)”types:CLR体系结构:x86版本:1.0.0-beta5

怎样才能改变ASP.NET 5项目的“目标框架”?

这里是我的global.json现在:

 { "projects": [ "src", "test", "wrap" ], "sdk": { "version": "1.0.0-beta5", "runtime": "clr", "architecture": "x86" } } 

但是那里列出的并不重要。 我已经尝试了1.0.0-beta5和最新的1.0.0-beta6的不同版本

问题是,DNX知道你的项目是针对dnx46但IIS不是:)。 因此,IIS从.NET 4.5.1开始(默认),并尝试加载与4.5.1不兼容的项目。

在VS工具的未来版本中,我们将更好地检测,但在此之前,对于想要将.NET版本定位 4.5.1 以上的 Web应用程序,情况有点粗糙。 现在,我build议直到那时才使用dnx451 (如果不依赖于.NET 4.5.2 / 4.6的function),但是我会在下面提供一些关于如何在今天使用这个工具的说明,如果你需要使用4.5。 2或更高。

注意: dnx452dnx46在控制台应用程序和使用非IIS的服务器(如Kestrel或WebListener)时完全受支持。 基本上可以使用本机dnx.exe引导程序启动的任何东西都可以与dnx451dnx46一起dnx451 ,但其他宿主环境(IIS,IIS Express)需要额外的提示才能启动正确的框架。

为了使今天的工作,你需要设置一个环境variablesDNX_IIS_RUNTIME_FRAMEWORK到你想要使用的目标框架。 您可以在“debugging”选项卡的“Web应用程序的项目属性”页面中执行此操作。 只需selectIIS Expressconfiguration文件,然后添加环境variables,如下所示:

启动配置文件

我们将把它添加到已知问题中 ,因为它看起来像我们错过了,正如我上面所说的,我们将改进VS中的默认体验,所以这不是必要的:)。

 "DNX_IIS_RUNTIME_FRAMEWORK" : "DNX46" 

值是区分大小写的