Kestrel 运行 哪个框架?

Kestrel Running which framework?

我有一个新的 ASP.NET 5 项目并设置 project.json 如下;

    "frameworks": {
    "dnx451":  {
        "dependencies": {
            "ExternalLibrary": "1.3.0" }
        },
    "dnxcore50": {}
}

我正在 运行使用 project.json 中定义的默认命令通过 Kestrel 连接项目。

"kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5001"

一切正常。项目 运行s 和依赖项运行良好。我唯一不明白的是,谁决定使用哪个底层框架?

据我了解,如果 Kestrel 使用 dnxcore50,项目应该会失败。如果是这样,我们如何推动 Kestrel 使用它?

附带说明一下,项目 运行 非常好,完全没有错误,但是当我尝试使用 DNU 手动构建项目时,出现以下错误。目前我认为它并不重要,因为据我所知,它不会在 运行 时间内导致故障。只是想添加它以防它有帮助。

http://pastebin.com/x44VtXct

在Visual Studio2015年,使用的框架按顺序确定:

  1. 项目属性。右键单击解决方案资源管理器中的 .xproj 和 select 属性。前往 "Application" 部分(默认),您可以 "Use Specific DNX version",包括版本、平台和体系结构。

  2. global.json。不知道这里能不能换平台,但是举个例子:

    "sdk": {
        "version": "1.0.0-beta6-12032"
    }
    
  3. Visual Studio 默认使用特定的运行时,具体取决于其版本。我相信 VS 2015 RC 默认使用 beta4、.Net Framework、x64。

从命令行运行时,由您的活动dnvm决定。您可以使用命令 dnvm list 来显示您安装的 VM。您将获得类似于以下内容的列表:

Active Version           Runtime Architecture Location                    Alias
------ -------           ------- ------------ --------                    -----
       1.0.0-beta4       clr     x64          C:\Users\Matt\.dnx\runtimes
       1.0.0-beta4       clr     x86          C:\Users\Matt\.dnx\runtimes
       1.0.0-beta4       coreclr x64          C:\Users\Matt\.dnx\runtimes
       1.0.0-beta4       coreclr x86          C:\Users\Matt\.dnx\runtimes
       1.0.0-beta4-11566 clr     x86          C:\Users\Matt\.dnx\runtimes
       1.0.0-beta5-11855 clr     x64          C:\Users\Matt\.dnx\runtimes
       1.0.0-beta5-11855 clr     x86          C:\Users\Matt\.dnx\runtimes
       1.0.0-beta5-11855 coreclr x64          C:\Users\Matt\.dnx\runtimes
       1.0.0-beta6-11921 clr     x64          C:\Users\Matt\.dnx\runtimes
       1.0.0-beta6-11921 clr     x86          C:\Users\Matt\.dnx\runtimes x64
       1.0.0-beta6-12005 clr     x64          C:\Users\Matt\.dnx\runtimes
       1.0.0-beta6-12005 clr     x86          C:\Users\Matt\.dnx\runtimes
  *    1.0.0-beta6-12032 clr     x64          C:\Users\Matt\.dnx\runtimes default
       1.0.0-beta6-12032 clr     x86          C:\Users\Matt\.dnx\runtimes

* 表示您当前的 VM。 coreclr 使用 dnxcore50,而其他人(可能 mono 在你的 Mac 上)使用相应的框架,但似乎编译为 dnx451.