首页 > 解决方案 > 如何判断 .NET Core 上“真正”支持什么?例如注册表

问题描述

我有一个 C# 库,我想将其从 .NET Framework 移植到 .NET Core。所以我针对它运行了 Visual Studio 的“可移植性分析器”,它标记了几个不受支持的东西供我处理。但是我对它没有标记的一些东西感到惊讶,包括与注册表相关的东西(这只是一个例子——我打算让我的问题比注册表更广泛)。

我以为我以前一直读到注册表是 Windows 以外的平台不支持的东西之一。所以我想也许 Portability Analyzer 是错误的。但后来我去微软的网站,查了一些令我惊讶的注册表相关的东西,发现它们都包含在 .NET Core 中。例如:

Microsoft.Win32.Registry、.NET Core 2.1

但我认为 .NET Core 的重点是拥有 .NET Standard 的跨平台实现,而注册表之类的东西不会在 .NET Core 中,而是在“.NET Core 加平台扩展”中(如果在任何地方)。所以我显然在这里误解了一些东西。

也许这些功能已实现,但只会在非 Windows 操作系统上引发异常?还是基本上没有操作?如果是这种情况,我如何判断该库是否会“真正”在其他平台上工作(没有明确的试验和错误)?我认为这就是 Portability Analyzer 的重点。

标签: c#.net.net-coreregistryportability

解决方案


docs.microsoft.com 不是确定组件适合位置的好资源。为此,请使用https://apisof.net。例如https://apisof.net/catalog/Microsoft.Win32.Registry告诉我们这Microsoft.Win32.Registry是在:

  • .NET 核心 3.0
  • .NET Core + 平台扩展 2.0 和 2.1
  • .NET 标准 + 平台扩展 1.6 和 2.0
  • ASP.NET 核心 2.0
  • .NET 框架。

推荐阅读