本文介紹 .NET 11 的新功能。 上次更新是在候選版 1(RC 1)時。
.NET 11 目前正處於發行候選版本中。 預計於 2026 年 11 月全面上市。 你可以在這裡下載.NET 11。
.NET 執行時間
.NET 11 執行環境包括:
- 更新了 x86/x64 與 Arm64 架構的最低硬體需求,要求使用更現代化的指令集以提升效能並降低維護複雜度。
- 執行階段原生非同步(Runtime Async),能產生更簡潔的堆疊追蹤並降低開銷。 執行時非同步對於以
<EnablePreviewFeatures>true</EnablePreviewFeatures>為目標的專案不再需要net11.0。 執行階段程式庫本身是以runtime-async=on編譯而成。 - 執行階段非同步效能改進,包括對傳回同步工作的方法 JIT 編譯專用的執行階段非同步版本、在未使用任何環境狀態時選擇不擷取
ExecutionContext的非同步延續,以及可減少產生程式碼大小的尾部合併暫停點。 - 執行階段非同步分層編譯、Task 和 ValueTask 工廠內建函式,以及隱含尾端呼叫的改進,可減少暖機期間的配置並加速常見的
await路徑。 - JIT 改進了界限檢查消除、冗餘檢查上下文移除、去虛擬化、切換式摺疊、常數摺疊
SequenceEqual及冗餘分支消除。 此外,還有新的 Arm SVE2 內建元件、改良的硬體內在成本建模,以及在 x64 上能發出單一Math.BigMul指令的加速MUL程式。 - WebAssembly 上的 CoreCLR 現在能端到端執行函式庫的測試套件,執行時則新增 AVX-VNNI-512 硬體內在元件,用於向量乘法加法工作負載。
- 程序中崩潰報告記錄,能在程序結束前捕捉管理的堆疊追蹤與執行狀態,該功能可在行動平台、Linux 和 macOS 上提供。
- NativeAOT 透過共享派遣輔助工具加快介面調度,減少呼叫站點的二進位大小,並提升介面密集工作負載的吞吐量。
- 涵蓋
CreateGeometricSequence、Zip、Unzip、Concat及Vector128<T>的 SIMD 通道建構與組合 API(Vector256<T>、Vector512<T>、Vector64<T>及Vector<T>系列)。 - 用於
Half算術運算與轉換的硬體 FP16 指令,適用於 x64 和 Arm64。
更多資訊請參見 .NET 11 執行環境的新功能。
.NET 函式庫
.NET 11 函式庫包含以下新 API:
- Process 擴充內容包括執行並擷取輔助函式、發後不理的啟動方式、SafeProcessHandle 生命週期方法、更嚴格的控制代碼控管、用於暫停啟動的新 ProcessStartInfo.StartSuspended、用於安全查找程序的 Process.TryGetProcessById(Int32, Process),以及搭配 ProcessExitStatus 的 Process.Signal(PosixSignal),用於向程序傳送訊號並檢查其退出方式。
- 壓縮,包括改良的 Base64 API、ZIP 封存項目的新方法、System.IO.Compression 中的 Zstandard 壓縮、讀取 ZIP 項目時的 CRC32 驗證,以及無資料流的 Deflate、ZLib 和 GZip 編碼器與解碼器上的
Reset()方法。 - 新增數值 API,包括 IEEE 754 十進位浮點型別(Decimal32、Decimal64 和 Decimal128)、用於分隔符號感知剖析的 INumberBase<TSelf>.TryParsePartial,以及泛型 Complex<T>。
- System.Text.Json 改進,包括 C# 與 F# 聯集支援、JSON 行(JSONL)輸出、擴充多態性與原始碼產生、新增命名與忽略控制項,以及內建數值轉換器與集合合約。
- 適用於 MemoryCache 的內建 OpenTelemetry 指標。
- 差別工會支架(
UnionAttribute與IUnion)在 System.Runtime.CompilerServices中。 - Tar 壓縮檔格式選擇及 GNU 稀疏格式 1.0 支援。
-
Console支援FORCE_COLOR環境變數。 - TLS 握手強化、Linux 上的憑證驗證警示、Unix 上的通道綁定驗證,以及實驗性的呼叫者驅動 TLS 會話 API(
TlsBufferSession和TlsSocketSession)。 - 網路功能新增項目包括 HTTP 要求本文壓縮包裝函式、可設定的 HTTP 連線清除機制,以及可在 Windows、Linux 和 macOS 上透過 Dns 和新的 DnsResolver 類別使用的具型別 DNS 記錄解析 API。
- HTTP/2 自動降級以支援 Windows 驗證。
- LINQ 聯結功能的改進,包括
FullJoin,以及會傳回元組的Join和GroupJoin多載,涵蓋 Enumerable、Queryable 和 AsyncEnumerable。 - 新增用於 X25519 金鑰交換的 X25519DiffieHellman 類別,以及在
DecryptKeyWrap上支援無填充的 AES 金鑰包裝(AesEncryptKeyWrap/)。 - 通用過載在 Random 和
NextInteger<T>NextBinaryFloat<T>上,適用於任何數字通用類型。 - EqualityComparer<T>.Create 工廠方法,從按鍵選擇器建立比較器。
- QuicStream.Priority 用於 HTTP/3 串流優先排序。
- MediaTypeNames.Video 中的影片 MIME 類型常數。
- 有四種新
Stream類型(,ReadOnlyMemoryStreamWritableMemoryStream,ReadOnlySequenceStream,StringStream),可在不複製的情況下封裝記憶體資料。 -
BitArray 接受
ReadOnlySpan<bool>、ReadOnlySpan<byte>、 和ReadOnlySpan<int>的構造器。 - 在
System.ComponentModel.DataAnnotations中透過AsyncValidationAttribute、IAsyncValidatableObject和新的Validator.ValidateObjectAsync方法進行非同步驗證,並透過IAsyncStartupValidator進行非同步Microsoft.Extensions.Options驗證。 - 使用
Microsoft.Extensions.Diagnostics中規則的活動追蹤組態,可對Activity追蹤進行宣告式控制,無須手動連接ActivityListener執行個體。 - 跨車道向量運算包括
CreateGeometricSequence、Zip、Unzip,以及Concat、Vector128<T>、Vector256<T>、Vector512<T>和Vector64<T>上的Vector<T>系列。
欲了解更多資訊,請參閱.NET 11圖書館最新資訊。
.NET SDK
.NET 11 SDK 包含:
- Linux 和 macOS 上較小的 SDK 安裝程式可透過組件去重複來實現,此外,對僅含
DotnetTools的組件略過 crossgen 還能進一步節省空間。 - 改良版 CA1873 程式碼分析器,降低雜訊並提供更清晰的診斷訊息。
- 支援從 CLI
.slnf建立與編輯dotnet sln解決方案過濾器。 - 支援檔案式應用程式,可透過
#:include將應用程式拆分為多個檔案,並直接包含已編譯的 DLL 參考,以及重複使用 Native AOT 建置輸出,並提供對檔案式應用程式的dotnet format支援。 - 新增了一個
dotnet run -e從命令列傳遞環境變數的新選項。 -
dotnet watch改進包括 Aspire 應用程式與主機整合、自動當機恢復,以及為 MAUI 和行動專案選擇裝置。 - OpenTelemetry 取代了 CLI 遙測的 Application Insights。
- 提供完整命令介面的 NativeAOT CLI 入口點,包含所有內建命令的
--help以及工具/外部命令的啟動,會從 AOT 路徑以行程外方式執行,並略過受控 CLI 啟動程序。 - NativeAOT CLI 和 MSBuild 伺服器現在預設已啟用。
-
dotnet test改進內容包括--no-dependencies環境DOTNET_TEST_RUNNER變數、--use-current-runtime--test-modules排除模式、各組件測試計數,以及飛行中測試的即時顯示。 -
dotnet test支援 Android、iOS、macOS 及 Mac Catalyst 測試專案,並支援裝置選擇及新增androidtest的 、iostest、macostest、 及maccatalysttest範本。 - 額外的
dotnet test執行層級選項,包括--timeout、--maximum-failed-tests、--results-directory-layout per-module以及實驗性的受影響測試工作流程,並支援遍歷專案、--list-tests的 JSON 輸出,以及多模組執行的工件後處理。 - 內建測試範本支援 xUnit v3(預設為 Microsoft。Testing.Platform)以及 NUnit,並附有選擇加入
--test-runner的選項。 - 多架構容器映像可透過 Podman 建置,使用 SDK 的容器發佈支援。
- 容器發佈現在會先採用平台原生的本機執行階段(Windows 上的
wslc和 macOS 上的container),而非 Docker 和 Podman,並透過SOURCE_DATE_EPOCH產生可重現的映像摘要,且當目標資訊清單已存在時,會跳過重複的層上傳。 - Razor 類函式庫的 TypeScript 編譯輸出現在能正確整合至 Static Web Assets 管線。
-
dotnet format將.editorconfig在資料夾模式下的探索範圍限制為所含檔案的上層目錄。 - 當
dotnet未設定時,DOTNET_CLI_USE_MSBUILD_SERVERCLI 不再抑制 MSBuild 建置伺服器,而 OTLP 遙測匯出器則會在任何標準的OTEL_EXPORTER_OTLP_*環境變數上啟用。
欲了解更多資訊,請參閱 .NET 11 SDK 的新內容。
ASP.NET Core
關於 ASP.NET Core 的新功能,請參閱.NET 11 版 ASP.NET Core 的新功能。
C# 15
C# 15 是針對 .NET 11 專案的預設語言版本,包含以下功能:
關於 C# 新功能的資訊,請參見 C# 15 的新功能。
EF Core
請參考 EF Core .NET 11 的最新內容。
擴充函式庫
Windows Forms
請參考Windows Forms.NET 11的新消息。
WPF
請參考.NET 11 WPF最新消息。