.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 也支持 .NET Core 3.1,并且 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 和公证

仅 macOS

从已公证的适用于 macOS 的 .NET Core SDK 3.1 开始,默认已禁用 appHost 设置。 有关详细信息,请参阅 macOS Catalina 公证以及对 .NET Core 下载和项目的影响

启用 appHost 设置后,.NET Core 在生成或发布时将生成本机 Mach-O 可执行文件。 如果使用 dotnet run 命令从源代码中运行应用,或通过启动 Mach-O 可执行文件直接运行应用,则应用会在 appHost 的上下文中运行。

如果没有 appHost,用户就只能使用 dotnet <filename.dll> 命令启动依赖框架的应用。 发布独立应用时,始终会创建 appHost。

可以在项目级别配置 appHost,或通过 -p:UseAppHost 参数切换特定 dotnet 命令的 appHost:

  • 项目文件

    <PropertyGroup>
      <UseAppHost>true</UseAppHost>
    </PropertyGroup>
    
  • 命令行参数

    dotnet run -p:UseAppHost=true
    

有关 UseAppHost 设置的详细信息,请参阅 Microsoft.NET.Sdk 的 MSBuild 属性

Windows 窗体

仅限 Windows

警告

Windows 窗体中发生重大变更。

旧版控件包含在 Windows 窗体中,这些窗体在一段时间内无法在 Visual Studio 设计器工具箱中使用。 它们已替换为 .NET Framework 2.0 中的新控件。 它们已从适用于 .NET Core 3.1 的桌面 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)

后续步骤