Asp.Net 5 Class 库中未引用 Mscorlib

Mscorlib not referenced in Asp.Net 5 Class Library

我正在尝试将一个库移植到 ASP.NET CORE,但我很难让 Visual Studio 引用所有重要部分。我注意到 mscorlib 仅添加到 ASP.NET 5.0 下的引用中,但未添加到 ASP.NET CORE 下。在这两个框架下,即使在 ASP.NET 5.0

下引用了 mscorelib,我也没有得到像 System.Object 这样的基本类型

起初我使用 beta2,但后来我构建了自己的 CoreCLR 并使用 kvm 将其安装在我的机器上。

Kvm 列表显示如下:

Active Version           Runtime Architecture Location                      Alias
------ -------           ------- ------------ --------                      -----
       1.0.0-beta4-11037 clr     x64          C:\Users\SomeName\.k\runtimes
       1.0.0-beta4-11037 clr     x86          C:\Users\SomeName\.k\runtimes
  *    1.0.0-beta4-11037 coreclr x64          C:\Users\SomeName\.k\runtimes default
       1.0.0-beta4-11037 coreclr x86          C:\Users\SomeName\.k\runtimes

当我尝试在 visual studio 中调试我的项目时,它只能在 beta2 下运行,但在我的自定义构建下不起作用。所以我必须手动 运行 我的项目:

k run -r CoreCLR -X64

一切都运行很好。

我可以通过将调试器附加到 运行ning 项目来调试 Visual Studio 中的那个项目,但这不是一个好的体验。当然这是测试版,但也许我的设置有问题,有人可以帮助我。

project.json

{
"version": "1.0.0-*",
"dependencies": {
     "Microsoft.Framework.ConfigurationModel": "1.0.0-beta4-1083",
    "Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4-10837",
    "Microsoft.Framework.ConfigurationModel.Xml": "1.0.0-beta4-10837",
    "System.Collections": "4.0.10-beta-22613",
    "System.Collections.Concurrent": "4.0.10-beta-22613",
    "System.Collections.NonGeneric": "4.0.0-beta-22613",
    "System.Collections.Specialized": "4.0.0-beta-22613",
    "System.ComponentModel": "4.0.0-beta-22613",
    "System.ComponentModel.Annotations": "4.0.10-beta-22613",
    "System.ComponentModel.EventBasedAsync": "4.0.10-beta-22613",
    "System.ComponentModel.TypeConverter": "4.0.0-beta-22613",
    "System.Diagnostics.Tools": "4.0.0-beta-22613",
    "System.Diagnostics.TraceSource": "4.0.0-beta-22613",
    "System.Dynamic.Runtime": "4.0.10-beta-22613",
    "System.Linq": "4.0.0-beta-22613",
    "System.Linq.Expressions": "4.0.0-beta-22613",
    "System.ObjectModel": "4.0.10-beta-22613",
    "System.Reflection": "4.0.10-beta-22613",
    "System.Reflection.Emit.ILGeneration": "4.0.0-beta-22613",
    "System.Reflection.Extensions": "4.0.0-beta-22613",
    "System.Reflection.Primitives": "4.0.0-beta-22613",
    "System.Reflection.TypeExtensions": "4.0.0-beta-22613",
    "System.Runtime": "4.0.20-beta-22613",
    "System.Runtime.Extensions": "4.0.10-beta-22613",
    "System.Runtime.Serialization.Json": "4.0.0-beta-22613",
    "System.Runtime.Serialization.Primitives": "4.0.0-beta-22613",
    "System.Runtime.Serialization.Xml": "4.0.10-beta-22613",
    "System.Security.AccessControl": "4.0.0-beta-22613",
    "System.Security.Claims": "4.0.0-beta-22613",
    "System.Security.Principal": "4.0.0-beta-22613",
    "System.Security.Principal.Windows": "4.0.0-beta-22613",
    "System.Text.RegularExpressions": "4.0.10-beta-22613",
    "System.Threading": "4.0.10-beta-22613",
    "System.Threading.AccessControl": "4.0.0-beta-22613",
    "System.Threading.Tasks": "4.0.10-beta-22613",
    "System.Threading.Thread": "4.0.0-beta-22613",
    "System.Threading.ThreadPool": "4.0.10-beta-22613"
},
"frameworks": {
     "aspnet50": {
        "dependencies": {
        }
    },
    "aspnetcore50": {
        "dependencies": {
        }
    }
}

更新 我注意到 Visual Studio 即使在显示刷新时也没有加载正确的包,所以我更新了所有内容:

kpm restore

这大大改善了一切。但是我仍然无法在 Visual Studio 中正确地 运行 它,因为在加载 System.Threading 时我得到了一个类型加载异常。 运行 手动还是没问题的。

看来要等Visual Studio下个版本出来才能获得更好的体验了

我很想知道我从哪里获得 System.Runtime 的源代码以检查 ASPNETCORE50 中实现的内容。

在 Beta2 和 Beta4 之间,文件夹结构发生了变化。 public 版本的 VS 不理解最新的运行时。抱歉,在更新的 VS 工具出现之前您无能为力。如果您使用 VS,请暂时继续使用 Beta2。