Web服务器如何选择框架(dnx451 vs dnxcore50)

How does web server chooses framework (dnx451 vs dnxcore50)

我在 project.json 中有这个设置:

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

当我在 Kestrel("web" 命令)或 IIS Express 中 运行 应用程序时,他们如何知道使用这两个框架中的哪个框架,它如何选择 .net框架或 dnx.

对于 IISExpress,它将使用 Web 应用程序属性文件夹中 launchSettings.json 中的设置。

如果您使用 VS 启动 web 命令(即调试),我认为它也会使用该文件中的设置。

但是,如果您在没有 VS 的情况下从命令行使用 web 命令,我认为它将使用您的用户配置文件中的默认运行时,如 dnvm list 命令所示。

示例 launchSettings.json 来自我的项目:

{
  "iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
  "applicationUrl": "http://localhost:54671/",
  "sslPort": 0
}
  },
  "profiles": {
    "IIS Express": {
  "commandName": "IISExpress",
  "launchBrowser": true,
  "environmentVariables": {
    "ASPNET_ENV": "Development"
  },
  "sdkVersion": "dnx-coreclr-win-x86.1.0.0-rc1-update1"
},
"web": {
  "commandName": "web",
  "environmentVariables": {
    "Hosting:Environment": "Development"
  },
  "sdkVersion": "dnx-coreclr-win-x86.1.0.0-rc1-update1"
}
}
}