加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 21:10:18 所属栏目:asp.Net 来源:网络整理
导读:我在Visual Studio 2015中创建了新的ASP.NET 5 MVC项目。在项目创建向导中,我选择显示.NET框架4.6的模板,然后在下一个屏幕上从ASP.NET 5预览中选择“Web应用程序”模板。 但是,在创建之后,项目看起来在project.json的“frameworks”部分中只列出了“dnx4
我在Visual Studio 2015中创建了新的ASP.NET 5 MVC项目。在项目创建向导中,我选择显示.NET框架4.6的模板,然后在下一个屏幕上从ASP.NET 5预览中选择“Web应用程序”模板。

但是,在创建之后,项目看起来在project.json的“frameworks”部分中只列出了“dnx451”和“dnxcore50”:

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

我试图将“dnx451”更改为“dnx46”。项目已经建好了,但当我试图运行它,我得到以下错误信息:

The current runtime target framework is not compatible with ‘…’.

Current runtime Target Framework: ‘DNX,Version=v4.5.1 (dnx451)’ Type:
CLR Architecture: x86 Version: 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 Tooling中,我们将做更好的检测,但在那之前,对于希望定位4.5.1以上的.NET版本的Web应用程序来说,有点儿粗糙。现在,我建议只使用dnx451直到那时(如果你不依赖于.NET 4.5.2 / 4.6功能),但我会提供一些说明如何使今天的工作,如果你需要使用4.5。 2或更高。

注意:dnx452和dnx46在控制台应用程序和使用非IIS服务器(如Kestrel或WebListener)时完全支持。基本上,您可以使用本机dnx.exe启动程序启动与dnx451和dnx46工作,但其他托管环境(IIS,IIS Express)需要额外的提示启动正确的框架。

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读