如何判断 .NET Core 支持哪些"really"?例如注册表



我有一个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的全部意义。

learn.microsoft.com不是一个很好的资源来确定组件的适用范围。使用https://apisof.net为此。例如https://apisof.net/catalog/Microsoft.Win32.Registry告诉我们Microsoft.Win32.Registry在:中

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

最新更新