首页 > 解决方案 > 构建“.Net Standard”项目时——这是什么意思?

问题描述

由于 .net 标准不是一个实现,它只是一组规则,当一个 .net 标准的 Class-Library 项目构建时会发生什么?

我认为只能构建一个 .net 框架或 .net 核心(等)项目(其中可以包含一个 .net 标准类库的文件)。然而,完全可以将 .net 标准类库构建为一个项目。

标签: c#.net.net-core.net-standard

解决方案


(只是部分答案)

查看展开Dependencies节点时显示的内容:

在此处输入图像描述

.NET Standard 库最终会选择一个实现,在本例中是 .NET Core。

现在为什么 .NET Core 而不是 .NET Framework 呢?

我猜是因为它与平台无关,因此符合 .NET Standard 的关于开放性的范式,而 .NET Framework 则不能这样说。

netstandard.dll 的目的是什么?

当您在您选择的反编译器中打开它时,您将看到数以千计的TypeForwardedTo属性,即它的作用是将 .NET Standard 类型转发给一个实现。

此外,有趣的是,它甚至不是由 Microsoft 编写的,而是由 Mono 开发团队编写的。


推荐阅读