簡體   English   中英

.NET Framework、.NET Standard、.NET Core 和 .NET 之間的差異 5

[英]Difference between .NET Framework, .NET Standard, .NET Core and .NET 5

我構建了一個 C# 應用程序,我的目標框架是 .NET Framework 4.72。 當我使用TDengine C# 連接器時,它的目標框架是 .NET Standard 2.1 和 .NET 5。

當我在項目中引用這些 package 時,我在構建時總是出錯,它說方法 marshal.

Marshal.StringToCoTaskMemUTF8(字符串)

不在 Framework 4.7.2 中。

我很困惑,因為在我看來 4.7.2 應該是低於 .NET 5 的版本。這應該是兼容的。

那么 .NET Standard 與 .NET Framework .NET 5、6、7 之間有什么區別。這些名稱總是讓我感到困惑。 有誰知道如何區分它們或推薦一些文章來幫助我了解它們。

因為它確實令人困惑,所以我最近試圖自己弄清楚。 這是我想出的:

.NET 和 .NET Core.NET Framework的繼承者。

從 Version 5 開始,.NET Core 只被稱為 .NET:

  • .NET 核心1.0
  • .NET 核心1.1
  • .NET 核心2.0
  • .NET 核心2.1
  • .NET 核心2.2
  • .NET 核心3.0
  • .NET 核心3.1
  • .NET 5
  • .NET 6
  • .NET 7
  • .NET 8

.NET Framework從1.0版本運行到4.8版本,版本號無法分別與.NET Core或.NET進行比較。

.NET 標准本身不是框架或平台。 它只是將 .NET 實現的規范(標准)設置為“.NET 標准兼容”。 在這里,您可以看到不同的 .NET 標准版本及其支持的 .NET 實現和版本的列表。

是的,這很令人困惑!

.NET 核心是對 .NET 框架的重寫,以使其與平台無關。 它與經典的 .NET 框架(.NET 4.8 之前的版本)有許多不兼容之處。 .NET 版本 5 及以后的新版本基於 Core 分支,因此直到 4.8 才與舊版本完全兼容。

.NET Standard 試圖創建一個在所有版本之間兼容的通用子集。 因此,如果您針對 .NET 標准進行編程,您的代碼將同時適用於 4.8 分支和核心分支。 不幸的是,微軟通過制作一個與 .NET 4.8兼容的標准版本 .NET 來搞砸了。 他們這樣做可能是出於對 .NET 開發人員的惡意。

主要 .NET 框架版本:

.NET 框架 1.0 -> .NET 框架 2.0 -> .NET 框架 3.0 -> .NET 框架 3.5 -> .NET 框架 4.0 -> .NET 框架 4.8

主要 .NET 核心版本:

.NET 核心 1 -> .NET 核心 2 -> .NET 核心 3 -> .NET 5 -> .NET 6

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM