首页 > 解决方案 > 引用不属于 .NET Standard 的程序集

问题描述

我试图弄清楚哪些 API 是 .NET Standard 的一部分或与 .NET Standard 兼容。

举个例子Microsoft.Win32.Registry。它不是 .NET Standard 的一部分,因为它是特定于平台的 API(即 Microsoft Windows 平台)。因此,它未列在 MS Docs 的“适用于”部分中:

在此处输入图像描述

并且.NET API 浏览器在 .NET Standard 中没有为它列出任何内容:

在此处输入图像描述

但是,如果我正在构建一个 .NET Standard 类库,我可以从 NuGet 包:

在此处输入图像描述

我没有收到任何警告。我认为这可能与 .NET Framework 兼容性垫片有关,但我将 .NET Standard 的版本设置为低于 2.0 并且它仍然可以编译。

我错过了什么?

标签: .netvisual-studionuget.net-standard

解决方案


Microsoft.Win32.Registry不是 .NET Standard 的一部分,但可作为面向.NET Standard 2.0 的仅限 Windows 的Nuget 包使用(展开 Nuget 列表页面上的“依赖项”以进行验证)。这被称为“平台扩展”。

您可以在apisof.net上查看此内容,我们在“.NET Standard + Platform Extensions”下看到Microsoft.Win32.Registry支持,但由于已经说明的原因,在“.NET Standard”下没有看到支持。


推荐阅读