.NET Core 3.1 的新功能

本文描述 .NET Core 3.1 的新功能。 此版本包含對 .NET Core 3.0 的次要改進內容,著重於小規模但重要的修正。 關於 .NET Core 3.1 最重要的功能是,它是長期支援 (LTS) 版本。

如果您使用 Visual Studio 2019,則必須更新至 Visual Studio 2019 16.4 版或更新版本,才能與 .NET Core 3.1 專案搭配使用。 如需 Visual Studio 16.4 版新功能的詳細資訊,請參閱 Visual Studio 2019 16.4 版的新功能

Visual Studio for Mac 也支援並包含 Visual Studio for Mac 8.4 中的 .NET Core 3.1。

如需版本的詳細資訊,請參閱 .NET Core 3.1 公告

長期支援

.NET Core 3.1 是一個 LTS 版本,在發行後的三年內可以獲得 Microsoft 的支援。 強烈建議您將應用程式移至最新的 LTS 版本。 如需受支援版本的清單,請參閱 .NET 和 .NET Core 支援原則頁面。

版本 生命週期結束日期
.NET Core 3.1 2022 年 12 月 13 日生命週期結束。
.NET Core 3.0 2020 年 3 月 3 日生命週期結束。
.NET Core 2.2 2019 年 12 月 23 日生命週期結束。
.NET Core 2.1 2021 年 8 月 21 日生命週期結束。

如需詳細資訊,請參閱 .NET 和 .NET Core 支援原則

macOS appHost 和 notarization

僅限 macOS

從適用於 macOS 經過公證的 .NET Core SDK 3.1 開始,依預設會停用 appHost 設定。 如需詳細資訊,請參閱 macOS Catalina Notarization 及對 .NET Core 下載和專案的影響

啟用 appHost 設定時,.NET Core 會在您建置或發佈時產生原生 Mach-O 可執行檔。 當您的應用程式透過 dotnet run 命令從原始程式碼中執行,或透過直接啟動 Mach-O 可執行檔時,您的應用程式會在 appHost 的內容中執行。

如果沒有 appHost,使用者可啟動架構相依應用程式的唯一方法是使用 dotnet <filename.dll> 命令。 當您發佈獨立式應用程式時,一律會建立 appHost。

您可以在專案層級設定 appHost,或針對 appHost 切換成使用含 -p:UseAppHost 參數的特定 dotnet 命令:

  • 專案檔

    <PropertyGroup>
      <UseAppHost>true</UseAppHost>
    </PropertyGroup>
    
  • 命令列參數

    dotnet run -p:UseAppHost=true
    

如需 UseAppHost 設定的詳細資訊,請參閱 Microsoft.NET.Sdk 的 MSBuild 屬性

Windows Forms

僅限 Windows

警告

Windows Forms 中有重大變更。

舊的控制項已包含在 Visual Studio 設計工具工具箱中一段時間無法使用的 Windows Forms。 這些在 .NET Framework 2.0 中已被新的控制項取代。 這些已從適用於 .NET Core 3.1 的 Desktop SDK 中移除。

移除的控制項 建議的取代項 已移除的相關聯 API
DataGrid DataGridView DataGridCell
DataGridRow
DataGridTableCollection
DataGridColumnCollection
DataGridTableStyle
DataGridColumnStyle
DataGridLineStyle
DataGridParentRowsLabel
DataGridParentRowsLabelStyle
DataGridBoolColumn
DataGridTextBox
GridColumnStylesCollection
GridTableStylesCollection
HitTestType
ToolBar ToolStrip ToolBarAppearance
ToolBarButton ToolStripButton ToolBarButtonClickEventArgs
ToolBarButtonClickEventHandler
ToolBarButtonStyle
ToolBarTextAlign
ContextMenu ContextMenuStrip
Menu ToolStripDropDown
ToolStripDropDownMenu
MenuItemCollection
MainMenu MenuStrip
MenuItem ToolStripMenuItem

我們建議您將應用程式更新為 .NET Core 3.1,並移至取代的控制項。 取代控制項是一個直接簡單的過程,基本上是對類型進行「尋找並取代」的動作。

C++/CLI

僅限 Windows

已新增了可建立 C++/CLI (也稱為「受控 C++」) 專案的支援。 從這些專案產生的二進位檔與 .NET Core 3.0 和更新版本相容。

若要在 Visual Studio 2019 16.4 版中新增對 C++/CLI 的支援,請安裝 「使用 C++ 進行桌面開發」工作負載。 此工作負載會將兩個範本新增至 Visual Studio:

  • CLR 類別庫 (.NET Core)
  • CLR 空白專案 (.NET Core)

下一步