ASP.NET Core 5 的重大變更

如果你正在將應用程式遷移到 ASP.NET Core 5,這裡列出的重大變更可能會影響你。 變更會依技術區域分組,例如 ASP.NET Core 或密碼編譯。

本文指出每個中斷性變更是 二進制相容 或 原始碼相容:

  • 二進位相容 - 現有的二進位檔能在不重新編譯的情況下順利載入並執行,執行時行為也不會改變。
  • 來源相容 - 原始碼會在目標為新的運行時間或使用新的 SDK 或元件時順利編譯,而不會變更。
Title 二進位相容 來源相容
ASP.NET Core 應用程式反序列化帶引號的數字 ✔️ ❌
AzureAD.UI 和 AzureADB2C.UI API 已過時 ✔️ ❌
BinaryFormatter 串行化方法已過時 ✔️ ❌
端點路由中的資源為 HttpContext ✔️ ❌
已移除以 Microsoft 為前綴的 Azure 整合套件 ❌ ✔️
Blazor:Blazor 應用程式中的路由優先順序邏輯已更改 ✔️ ❌
Blazor: 更新的瀏覽器支援 ✔️ ✔️
Blazor:由編譯器移除的不重要的空格 ✔️ ❌
Blazor: JSObjectReference 與 JSInProcessObjectReference 類型為內部 ✔️ ❌
Blazor: NuGet 套件的目標框架已更改 ❌ ✔️
Blazor: ProtectedBrowserStorage 功能移至共享框架 ✔️ ❌
Blazor: RenderTreeFrame 的可讀公用欄位現在成為屬性 ❌ ✔️
Blazor:靜態網頁資產的更新驗證邏輯 ❌ ✔️
瀏覽器不支援密碼編譯 API ❌ ✔️
擴充功能:套件引用變更 ❌ ✔️
Kestrel 以及 IIS BadHttpRequestException 類型已過時 ✔️ ❌
IHttpClientFactory 所建立的 HttpClient 實例會記錄整數狀態代碼 ✔️ ❌
HttpSys:預設已停用用戶端憑證重新談判 ✔️ ❌
IIS:UrlRewrite 中間件查詢字串會保留 ✔️ ❌
Kestrel: 此為預設偵測到的設定變更 ✔️ ❌
Kestrel: 預設支援的 TLS 協定版本變更 ✔️ ❌
Kestrel: HTTP/2 在不相容的 Windows 版本中透過 TLS 被停用 ✔️ ✔️
Kestrel:標記為過時的 Libuv 運輸 ✔️ ❌
ConsoleLoggerOptions 上的過時屬性 ✔️ ❌
已移除 ResourceManagerWithCultureStringLocalizer 類別和 WithCulture 介面成員 ✔️ ❌
已移除 Pubternal API ✔️ ❌
要求當地語系化中間件中已移除過時的建構函式 ✔️ ❌
中間件:標示為過時的資料庫錯誤頁面 ✔️ ❌
例外狀況處理程式中間件擲回原始例外狀況 ✔️ ✔️
ObjectModelValidator 會呼叫 Validate 方法的新的多載版本 ✔️ ❌
Cookie 名稱編碼已移除 ✔️ ❌
已更新 IdentityModel NuGet 套件版本 ❌ ✔️
SignalR: MessagePack Hub 協定選項類型變更 ✔️ ❌
SignalR: MessagePack 中心協議已移動 ✔️ ❌
已移除UseSignalR和UseConnections方法 ✔️ ❌
CSV 內容類型已變更為符合標準的規範 ✔️ ❌