.NET标准已版本化。每个新版本都添加了更多的api。当库是针对某个.NET标准版本构建的时,它可以在实现该版本的.NET标准(或更高版本)的任何.NET实现上运行。针对更高版本的.NET标准允许库使用更多的API,但这意味着它只能用于较新版本的.NET。针对较低版本会减少可用的api,但意味着库可以在更多地方运行。下列截图中展示了.NET Standard 各版本对不同.NET 实现的支持情况。
其他低版本的支持情况,请参考微软官方文档:https://dotnet.microsoft.com/platform/dotnet-standard#versions
从上图中可以看出
选择 .NET Standard 版本时,应权衡以下因素:
一般来说,建议尽可能定位最低版本 .NET Standard。 因此,在找到可以定位的最高版本 .NET Standard 后,请按照以下步骤操作:
但是,定位更低版本的 .NET Standard 会引入许多支持依赖项。 如果项目定位 .NET Standard 1.x,我们建议 还定位 .NET Standard 2.0。 这简化了在 .NET Standard 2.0 兼容框架上运行的库的用户的依赖项关系图,并减少了下载所需的包数。
个人建议:为了同时支持.NET Core 与 .NET Framework,且尽可能多地使用API,建议选择.NET Standard 2.0。 如果不需要兼容.NET Framework,建议直接使用 .NET5版本。
参考微软官方文档:https://dotnet.microsoft.com/platform/dotnet-standard#versions