.Net Core Runtime Environment (KRE) bin 文件夹中程序集的用途是什么?

What is the purpose of the assemblies in the .Net Core Runtime Environment (KRE) bin folder?

我在 KRE bin 文件夹中看到很多程序集:{user path}\.kre\packages\KRE-CoreCLR-x86.1.0.0-beta1\bin,这些程序集的用途是什么,因为它们从未被引用过?

例如 System.Net.Http.dll 程序集:我在我的 project.json 中引用了这个程序集,然后从 nuget 检索它并存储到 {user path}\.kpm\packages 文件夹并从那里引用,而不是从kre bin 文件夹。

谢谢

来自github

核心原则

有许多原则有助于塑造运行时:

  • 运行时应该尽可能独立。直到 运行时已经遍历了你的应用程序依赖树 应用程序它不知道你想要哪个核心 CLR 包 使用,因此在此之前它无法加载它们中的任何一个。除了罗斯林, 因为使用 Roslyn 的依赖解析器实际上并没有加载 Roslyn 直到依赖关系被遍历之后。

  • 通过整个堆栈进行依赖注入。 DI 是 KRuntime 的核心部分,我们在其之上构建的所有库。

这些 .dll 文件用于 KRuntime,而不是用于在其上构建的具体应用程序。