如果您要將應用程式移轉至 .NET 10,此處列出的重大變更可能會影響您。 變更會依技術區域分組,例如 ASP.NET Core 或 Windows Forms。
本文會將每個重大變更分類為 二進位不相容 或 來源不相容,或 行為變更:
二進位不相容 - 針對新的執行階段或元件執行時,現有的二進位檔可能會發生重大行為變更,例如載入或執行失敗,如果發生此情況,則需要重新編譯。
來源不相容 - 使用新的 SDK 或元件重新編譯或以新的運行時間為目標時,現有的原始程式碼可能需要來源變更才能順利編譯。
行為改變 ——現有程式碼與二進位檔在執行時可能有不同的行為。 如果不需要新的行為,則必須更新並重新編譯現有的程序代碼。
Note
本文是進行中的工作。 這不是 .NET 10 中重大變更的完整清單。
ASP.NET Core
容器
| Title | 變更類型 |
|---|---|
| 預設的 .NET 映像使用 Ubuntu | 行為變更 |
Core.NET 連結庫
| Title | 變更類型 |
|---|---|
| ActivitySource.CreateActivity 和 ActivitySource.StartActivity 行為變更 | 行為變更 |
| Arm64 SVE 無故障負載需要遮罩 | 二進位/來源不相容 |
| BufferedStream.WriteByte 不再執行隱含排清 | 行為變更 |
| C# 14 包含 Span 參數的多載解析 | 行為變更 |
| 泛型數學 中的一致轉移行為 | 行為變更 |
| 預設追蹤內容傳播器已更新至符合 W3C 標準 | 行為變更 |
| DriveInfo.DriveFormat 會傳回 Linux 檔案系統類型 | 行為變更 |
| 從 DefaultValueAttribute ctor 中移除的 DynamicallyAccessedMembers 註釋 | 二進位/來源不相容 |
| InlineArray 不允許明確結構大小 | 二進制不相容 |
| FilePatternMatch.Stem 變更為不可為 Null | 來源不相容/行為變更 |
| GnuTarEntry 和 PaxTarEntry 預設不再包含 atime 和 ctime | 行為變更 |
| LDAP DirectoryControl 解析現在更嚴格 | 行為變更 |
| MacCatalyst 版本正規化 | 行為變更 |
| .NET 執行階段不再提供預設終止訊號處理常式 | 行為變更 |
| 核心函式庫中包含的 System.Linq.AsyncEnumerable | 來源不相容 |
| Type.MakeGenericSignatureType 引數驗證 | 行為變更 |
Cryptography
| Title | 變更類型 |
|---|---|
| CompositeMLDsa 更新至 draft-08 | 行為變更 |
| CoseSigner.Key 可以是 null | 行為/源代碼不相容變更 |
| MLDsa 和 SlhDsa 'SecretKey' 成員更名為 | 來源不相容 |
| macOS 不支援 OpenSSL 密碼編譯基本類型 | 行為變更 |
| Unix 上需要 OpenSSL 1.1.1 或更高版本 | 行為變更 |
| X500DistinguishedName 驗證更嚴格 | 行為變更 |
| X509Certificate 和 PublicKey 金鑰參數可以是 null | 行為/源代碼不相容變更 |
| 已將環境變數重新命名為 DOTNET_OPENSSL_VERSION_OVERRIDE | 行為變更 |
Entity Framework Core
Extensions
Globalization
| Title | 變更類型 |
|---|---|
| 環境變數 已重新命名為 DOTNET_ICU_VERSION_OVERRIDE | 行為變更 |
安裝工具
| Title | 變更類型 |
|---|---|
| 適用於 VS Code 的 dotnet.acquire API 不再一律下載最新的 | 行為變更 |
Interop
| Title | 變更類型 |
|---|---|
| 將 IDispatchEx COM 物件投射為 IReflect 失敗 | 行為變更 |
| 單一檔案應用程式不再尋找可執行檔目錄中的原生連結庫 | 行為變更 |
| 指定 DllImportSearchPath.AssemblyDirectory 只會搜尋元件目錄 | 行為變更 |
網路
| Title | 變更類型 |
|---|---|
| 使用 PublishTrimmed 時,預設會停用 HTTP/3 支援 | 來源不相容 |
| 默認在瀏覽器 HTTP 用戶端中啟用串流 HTTP 回應 | 行為變更 |
Uri 長度限制已移除 |
行為變更 |
反射
| Title | 變更類型 | 新推出的版本 |
|---|---|---|
| InvokeMember/FindMembers/DeclaredMembers 上更多受限制的註釋 | 行為/來源不相容 |
SDK 和 MSBuild
Serialization
| Title | 變更類型 |
|---|---|
| System.Text.Json 會檢查屬性名稱衝突 | 行為變更 |
| XmlSerializer 不再忽略標示為 ObsoleteAttribute 的屬性 | 行為變更 |
Windows Forms
Windows Presentation Foundation (WPF)
| Title | 變更類型 |
|---|---|
| 不允許空白的 ColumnDefinitions 和 RowDefinitions | 來源不相容 |
| DynamicResource 的使用不正確會導致應用程式當機 | 來源不相容/行為變更 |