2015-07-28 71 views
36

我在Visual Studio 2015中创建了新的ASP.NET 5 MVC项目。在项目创建向导中,我选择了显示.NET框架4.6然后在下一个屏幕上从ASP.NET 5 Preview Templates中选择“Web Application”。VS 2015.为ASP.NET 5 Web项目设置正确的目标框架

然而,在创建之后出现,该项目在“框架” project.json的部分只列出“dnx451”和“dnxcore50”:

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

我试图改变“dnx451”到“ dnx46" 。该项目已经建好,但是当我尝试运行它时,我收到以下错误消息:

当前运行时目标框架与'...'不兼容。

当前运行的目标框架: 'DNX,版本V4.5.1 =(dnx451)' 类型: 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的不同版本

+0

你有什么在global.json?如果你右键点击项目并选择属性,你有没有在那里检查特定的框架?查看更多的project.json以查看主要的依赖关系可能有助于诊断错误 –

+0

我已经更新了初始文章并将global.json的内容添加到其中。 但是我已经试图改变那里列出的“sdk”的版本 - 但它没有帮助。 – Sergiy

+0

你没有显示project.json的依赖部分。 beta6本来应该是昨天发布的,它似乎在nuget feed中,但目前还没有发布公告,我认为应该是VS 2015的相应工具更新。目前我会使用beta5直到更多关于beta6发布的新闻 –

回答

54

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

在VS工具的未来版本中,我们要做的检测,但在那之前,一切的Web应用程序有点粗糙希望针对.NET版本以上 4.5.1做得更好。现在,我建议在此之前使用dnx451(如果您不依赖于.NET 4.5.2/4.6的功能),但是我会在下面提供一些关于如何在今天完成这项工作的说明,如果您需要使用4.5。 2或更高。

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

为了今天能够完成这项工作,您需要将环境变量DNX_IIS_RUNTIME_FRAMEWORK设置为您要使用的目标框架。您可以在“调试”选项卡上的Web应用程序的“项目属性”页面中执行此操作。只要选择IIS Express配置文件,并添加如下环境变量:

Launch Profile

我们要得到这个加到Known Issues,因为它看起来像我们错过了,正如我上面所说的,我们将会改善VS的默认体验,所以这不是必须的:)。

+0

这是我的最终解决方案,谢谢安德鲁! – MisterJames

+0

谢谢你的详细解释。 很高兴知道这不是我的错:) – Sergiy

+0

@Andrew护士我需要卸载beta5这个工作吗?显然,尽管我努力使用特定的运行时(beta6) – Dbl

2
"DNX_IIS_RUNTIME_FRAMEWORK" : "DNX46" 

值是区分大小写

+1

从我已阅读的DNX框架识别消失。在阅读了这两篇文章http://www.hanselman.com/blog/ASPNET5IsDeadIntroducingASPNETCore10AndNETCore10.aspx .... https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/standard-platform。 MD – DRobertE

相关问题