.NET標准已版本化。每個新版本都添加了更多的api。當庫是針對某個.NET標准版本構建的時,它可以在實現該版本的.NET標准(或更高版本)的任何.NET實現上運行。針對更高版本的.NET標准允許庫使用更多的API,但這意味着它只能用於較新版本的.NET。針對較低版本會減少可用的api,但意味着庫可以在更多地方運行。下列截圖中展示了.NET Standard 各版本對不同.NET 實現的支持情況。
其他低版本的支持情況,請參考微軟官方文檔:https://dotnet.microsoft.com/platform/dotnet-standard#versions
從上圖中可以看出
- .NET Standard 版本越高,提供的API越多、功能越強大。
-
.NET Standard 2.0 對.NET Frmework 支持的最低版本為 4.6.1。
-
.NET Standard 2.1 不再支持.NET Framework。
要定位哪個 .NET Standard 版本
選擇 .NET Standard 版本時,應權衡以下因素:
- 版本越高,可使用的 API 就越多。
- 版本越低,可實現它的平台就越多。
一般來說,建議盡可能定位最低版本 .NET Standard。 因此,在找到可以定位的最高版本 .NET Standard 后,請按照以下步驟操作:
- 定位前一更低版本的 .NET Standard,然后生成項目。
- 如果成功生成項目,請重復執行第 1 步。 否則,重新定位到后一較高版本,這就是應該使用的版本。
但是,定位更低版本的 .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版本。