.NET Standard 庫是一組可跨多個 .NET 平臺共享使用的 API 的集合。它包含了許多常用的 .NET API,包括基本數據類型、集合、文件系統、網絡、安全等方面的 API。.NET Standard 庫被設計爲具有高度可移植性,可以輕鬆地跨不同的 .NET 平臺使用,並且不需要重複開發和維護多個版本的代碼。
NET Standard版本對應關係
.NET Standard 庫在不同的環境調用對應內庫方法
1、創建一個.NET Standard 類庫,添加一個簡單的測試方法。
public class NetStandardTest
{
public static void PrintLocation()
{
//打印FileStream 路徑
Console.WriteLine(typeof(FileStream).Assembly.Location);
//打印NetStandardTest 路徑
Console.WriteLine(typeof(NetStandardTest).Assembly.Location);
}
}
在這個測試方法裏面我們加了兩行打印代碼。主要是打印FileStream路徑,同時我們創建的.NET Standard類庫爲2.0,因爲我們接下來要創建.net framework 的控制檯,它不支持2.1。
2、創建.net 5,.net framework 4.6.1 控制檯程序
創建好兩個控制檯項目,在主方法裏面調用內庫方法。
static void Main(string[] args)
{
NetStandardTest.PrintLocation();
Console.ReadKey();
}
3、運行分析
.net standard裏面是沒有實現的,只是定義了方法,也就是說定義了一種標準,說明我的類裏面有哪些東西。調用的時候再根據我們當前使用的框架去找到對應框架的實現。
選擇.NET Core 目標框架只能在.NET Core框架內使用
- .NET Core 3.1 目標框架開發的類庫可以在 .NET 5.0 中使用。事實上,.NET 5.0 是 .NET Core 3.1 的繼承者,其 API 表面也相同。這意味着,.NET 5.0 可以兼容 .NET Core 3.1 的類庫,並可以無縫遷移。
- .NET 5.0 目標框架開發的類庫無法直接在低版本的 .NET Core 上使用。這是因爲 .NET 5.0 目標框架引入了一些新的 API 和功能,這些 API 和功能在舊版的 .NET Core 中並不存在。
參考
https://www.cnblogs.com/SunSpring/p/15047424.html
https://learn.microsoft.com/zh-cn/dotnet/standard/net-standard?tabs=net-standard-2-1