docs.microsoft.com上的.NET平台扩展是什么?

159
在Microsoft Docs上有一个名为".NET平台扩展"的框架级导航元素,其中包含最近添加的API文档,例如System.IO.PipelinesSystem.Threading.Channels,以及许多其他API,包括不那么新的API。
此集合中的一些API可作为nuget包使用(适用于.Net Core和.Net Framework),但其他API似乎不可用。而且,目前还没有名为“.NET平台扩展”或类似名称的nuget包。
因此,问题是这个API集合到底代表什么?它与以下各项的关系是什么:
  • .Net Framework
  • .Net Core
  • .Net Standard
那么,在.Net Framework / .Net Core中的支持情况如何?
最后,一些API似乎已经作为单独的nuget包可用,其他API尚未提供,那么在这方面的情况是什么?

11
正如《.NET - 介绍适用于.NET Core的Windows兼容性包》所述,"平台扩展"是指那些不属于平台(Core或Standard)但可通过Nuget获得的API。你不应该期望有一个包含所有内容的Nuget包。 - Damien_The_Unbeliever
4
这是否意味着,如果我使用扩展包(例如DirectorySearcher API),我将有可能在运行.NET Core 2.2的Linux容器上使用相同的代码?谢谢。 - Rishabh Jain
尝试使用 https://apisof.net - n0099
2个回答

116

它代表的是以 NuGet 包的形式提供的 API,而不是作为 .NET Core 共享框架的一部分。

目前我们无法在 learn.microsoft.com 上识别不同的包及其支持的目标框架,但这是我们待解决的问题。因此,添加新的目标使我们能够为新的 API 添加文档。


20
不清楚哪些内容确实属于平台扩展,例如Microsoft.Extensions.Logging.Logger类(位于Microsoft.Extensions.Logging.Abstractions.dll中)列在.NET平台扩展下,但它是ASP.NET Core 3.1共享框架的一部分。 - Ivan
2
它的命名不太好,但是 .net 平台扩展的 NuGet 包被称为 Microsoft.Windows.Compatibility。如果他们能修复文档并使用相同的名称就太好了。https://www.nuget.org/packages/Microsoft.Windows.Compatibility - Bill Tarbell
看起來有很大的改進:頁面頂部包含了一個名為「Package」的 Nuget 套件,該套件包含了這個類。在底部還有一個「Applies to」部分,指出可以在哪裡使用它(在這個上下文中,“.NET 平台擴展”意味著 “.Net Core”)。 - Puschie

9
如果您想针对Windows平台进行移植过程的开始并逐渐使用来自.NET Core或.NET Standard的平台无关替代方案,可以使用Windows兼容性包。
更多详细信息请参见: https://learn.microsoft.com/en-us/dotnet/core/porting/windows-compat-pack Windows兼容性包通过NuGet包Microsoft.Windows.Compatibility提供,并可从针对.NET Core或.NET Standard的项目中引用。
有关更多详细信息,请参见NuGet链接: https://www.nuget.org/packages/Microsoft.Windows.Compatibility,您可以通过执行以下命令来使用它:
Install-Package Microsoft.Windows.Compatibility -Version 3.1.0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接