使用 DNX Core 框架而不是 DNX 451

Use the DNX Core framework instead of DNX 451

我的 project.json 包括两个框架:

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

当运行 Visual Studio 中的应用通过“调试”>“不调试启动”时,Visual Studio 使用dnx451。我们如何要求 Visual Studio 改用 dnxcore50

这是我尝试过的:

用例是在具有完整框架的系统上测试 CoreCLR。我们如何做到这一点?作为最后的结果,我可以从 project.json 中注释掉 dnx451,尽管这看起来像是 hack。

这不是 hack,目前是标准。 看这里:http://docs.asp.net/en/latest/conceptual-overview/dotnetcore.html#building-applications-with-net-core

您只需删除或评论这些行。

如今,由于多平台范例,ASP.NET 似乎更多地是关于命令和配置文件,而不是关于使用 visual studio 和接口。

我不需要注释掉 dnx451。相反,这是有效的。

首先,从命令行

我最初遇到的问题是,在项目属性 > 调试页面上,beta6 没有将 .NET 核心列为平台选项,因为我还没有下载那个 运行 时间。所以,我需要 运行 以下内容来检索它(不要包括 -unstable 除非你想要它。)

dnvm upgrade -unstable -runtime coreclr

之后,dnvm list 现在显示这个。我想瞄准 beta6coreclrx86 现在已经设置好了。完美。

Active Version           Runtime Architecture Location                       Alias
------ -------           ------- ------------ --------                       -----
       1.0.0-beta4       clr     x64          C:\Users\BigFont\.dnx\runtimes
       1.0.0-beta4       clr     x86          C:\Users\BigFont\.dnx\runtimes
       1.0.0-beta4       coreclr x64          C:\Users\BigFont\.dnx\runtimes
       1.0.0-beta4       coreclr x86          C:\Users\BigFont\.dnx\runtimes
       1.0.0-beta5       clr     x86          C:\Users\BigFont\.dnx\runtimes
       1.0.0-beta5-12087 clr     x86          C:\Users\BigFont\.dnx\runtimes
       1.0.0-beta6       clr     x86          C:\Users\BigFont\.dnx\runtimes
       1.0.0-beta6-12085 clr     x86          C:\Users\BigFont\.dnx\runtimes
       1.0.0-beta6-12120 clr     x86          C:\Users\BigFont\.dnx\runtimes
       1.0.0-beta6-12170 clr     x86          C:\Users\BigFont\.dnx\runtimes
  *    1.0.0-beta6-12170 coreclr x86          C:\Users\BigFont\.dnx\runtimes default

现在,来自 Visual Studio

转到 > 项目属性 > 调试。从那里我们现在可以选择用于调试应用程序的特定 运行 时间版本、平台和体系结构。由于我们刚刚下载了 beta6 coreclr,该选项现在可作为 .NET Core 使用。

保存时,Visual Studio 会将此设置作为 sdkVersion.

发送到项目的 Properties\launchSettings.json 文件中
{
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNET_ENV": "Development"
      },
      "sdkVersion": "dnx-coreclr-win-x86.1.0.0-beta6-12170"
    }
  }
}

现在,当我们 运行 来自 Visual Studio 的应用程序时,它将是 运行 Core CLR beta6,即使我们的 project.json 列出了 dnx451dnxcore50