.net - 引用不属于 .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 并且它仍然可以编译。
我错过了什么?
解决方案
Microsoft.Win32.Registry
不是 .NET Standard 的一部分,但可作为面向.NET Standard 2.0 的仅限 Windows 的Nuget 包使用(展开 Nuget 列表页面上的“依赖项”以进行验证)。这被称为“平台扩展”。
您可以在apisof.net上查看此内容,我们在“.NET Standard + Platform Extensions”下看到Microsoft.Win32.Registry
支持,但由于已经说明的原因,在“.NET Standard”下没有看到支持。
推荐阅读
- amazon-web-services - AWS PHP SDK - Polly 忽略神经引擎
- fastapi - 自定义状态代码代替 500:使用 Postman 的 FastAPI 中的内部服务器错误
- python - 在 Python 中使用 while 循环在游戏中检查点
- firebase - 在 Flutter 测试中添加实时监听器
- java - Java:如何以排序方式迭代 LinkedList?
- python - 连续查找第一次出现的负值
- python - 从 Python 中的数据流中提取携带信息的 12 位
- excel - 循环以确保输入框条目为八个字符长且为数字
- python - 对列表中的数据框列进行分组
- browser - 如何在电子浏览器中打开网站