Новые возможности .NET Core 3.1What's new in .NET Core 3.1

В этой статье описаны новые возможности в .NET Core 3.1.This article describes what is new in .NET Core 3.1. Этот выпуск содержит небольшие улучшения относительно .NET Core 3.0. Внимание уделялось нескольким небольшим, но важным исправлениям.This release contains minor improvements to .NET Core 3.0, focusing on small, but important, fixes. Основная особенность .NET Core 3.1 заключается в том, что это выпуск долгосрочной поддержки (LTS).The most important feature about .NET Core 3.1 is that it's a long-term support (LTS) release.

Если вы используете Visual Studio 2019, для работы с проектами .NET Core 3.1 необходимо обновить Visual Studio 2019 до версии 16.4 или более поздней.If you're using Visual Studio 2019, you must update to Visual Studio 2019 version 16.4 or later to work with .NET Core 3.1 projects. Сведения о новых возможностях Visual Studio версии 16.4 см. на странице Новые возможности Visual Studio 2019 версии 16.4.For information on what's new in Visual Studio version 16.4, see What's New in Visual Studio 2019 version 16.4.

Visual Studio для Mac также поддерживает и содержит .NET Core 3.1 в версии Visual Studio для Mac 8.4.Visual Studio for Mac also supports and includes .NET Core 3.1 in Visual Studio for Mac 8.4.

Дополнительные сведения см. в объявлении о выпуске .NET Core 3.1.For more information about the release, see the .NET Core 3.1 announcement.

Долгосрочная поддержкаLong-term support

.NET Core 3.1 объявляется выпуском долгосрочной поддержки. Это означает, что корпорация Майкрософт будет поддерживать его в течение следующих трех лет..NET Core 3.1 is an LTS release with support from Microsoft for the next three years. Мы настоятельно рекомендуем перевести все приложения на .NET Core 3.1.It's highly recommended that you move your apps to .NET Core 3.1. Текущий жизненный цикл других основных выпусков:The current lifecycle of other major releases is as follows:

ВыпускRelease Примечание.Note
.NET Core 3.0.NET Core 3.0 Окончание жизненного цикла 3 марта 2020 г.End of life on March 3, 2020.
.NET Core 2.2.NET Core 2.2 Окончание жизненного цикла 23 декабря 2019 г.End of life on December 23, 2019.
.NET Core 2.1.NET Core 2.1 Окончание жизненного цикла 21 августа 2021 г.End of life on August 21, 2021.

Дополнительные сведения см. в статье о политике поддержки .NET Core.For more information, see the .NET Core support policy.

Файл appHost в macOS и заверениеmacOS appHost and notarization

Только macOSmacOS only

Начиная с заверенного пакета SDK для .NET Core 3.1 для macOS параметр appHost отключен по умолчанию.Starting with the notarized .NET Core SDK 3.1 for macOS, the appHost setting is disabled by default. Дополнительные сведения см. в статье Заверение macOS Catalina и влияние на скачиваемые файлы и проекты .NET Core.For more information, see macOS Catalina Notarization and the impact on .NET Core downloads and projects.

Если параметр appHost включен, .NET Core создает собственный исполняемый файл Mach-O, когда вы выполняете сборку или публикацию.When the appHost setting is enabled, .NET Core generates a native Mach-O executable when you build or publish. Приложение выполняется в контексте appHost при запуске из исходного кода с помощью команды dotnet run или путем непосредственного запуска исполняемого файла Mach-O.Your app runs in the context of the appHost when it is run from source code with the dotnet run command, or by starting the Mach-O executable directly.

Без appHost пользователь может запустить приложение, зависящее от среды выполнения, только одним способом — с помощью команды dotnet <filename.dll>.Without the appHost, the only way a user can start a runtime-dependent app is with the dotnet <filename.dll> command. AppHost всегда создается при публикации приложения в автономном виде.An appHost is always created when you publish your app self-contained.

Можно либо настроить appHost на уровне проекта, либо переключить использование appHost для определенной команды dotnet с помощью параметра -p:UseAppHost:You can either configure the appHost at the project level, or toggle the appHost for a specific dotnet command with the -p:UseAppHost parameter:

  • Файл проектаProject file

    <PropertyGroup>
      <UseAppHost>true</UseAppHost>
    </PropertyGroup>
    
  • Параметр командной строкиCommand-line parameter

    dotnet run -p:UseAppHost=true
    

Дополнительные сведения о параметре UseAppHost см. в разделе Свойства MSBuild для Microsoft.NET.Sdk.For more information about the UseAppHost setting, see MSBuild properties for Microsoft.NET.Sdk.

Windows FormsWindows Forms

Только для WindowsWindows only

Предупреждение

В Windows Forms внесены критические изменения.There are breaking changes in Windows Forms.

В Windows Forms входили устаревшие элементы управления, которые уже некоторое время недоступны на панели элементов конструктора Visual Studio.Legacy controls were included in Windows Forms that have been unavailable in the Visual Studio Designer Toolbox for some time. Они были заменены новыми элементами управления еще в .NET Framework 2.0.These were replaced with new controls back in .NET Framework 2.0. Эти элементы управления удалены из пакета SDK для рабочего стола для .NET Core 3.1.These have been removed from the Desktop SDK for .NET Core 3.1.

Удаленный элемент управленияRemoved control Рекомендуемая заменаRecommended replacement Соответствующие удаленные интерфейсы APIAssociated APIs removed
DataGridDataGrid DataGridView DataGridCellDataGridCell
DataGridRowDataGridRow
DataGridTableCollectionDataGridTableCollection
DataGridColumnCollectionDataGridColumnCollection
DataGridTableStyleDataGridTableStyle
DataGridColumnStyleDataGridColumnStyle
DataGridLineStyleDataGridLineStyle
DataGridParentRowsLabelDataGridParentRowsLabel
DataGridParentRowsLabelStyleDataGridParentRowsLabelStyle
DataGridBoolColumnDataGridBoolColumn
DataGridTextBoxDataGridTextBox
GridColumnStylesCollectionGridColumnStylesCollection
GridTableStylesCollectionGridTableStylesCollection
HitTestTypeHitTestType
ToolBarToolBar ToolStrip ToolBarAppearanceToolBarAppearance
ToolBarButtonToolBarButton ToolStripButton ToolBarButtonClickEventArgsToolBarButtonClickEventArgs
ToolBarButtonClickEventHandlerToolBarButtonClickEventHandler
ToolBarButtonStyleToolBarButtonStyle
ToolBarTextAlignToolBarTextAlign
ContextMenuContextMenu ContextMenuStrip
Menu ToolStripDropDown
ToolStripDropDownMenu
MenuItemCollectionMenuItemCollection
MainMenuMainMenu MenuStrip
MenuItemMenuItem ToolStripMenuItem

Мы рекомендуем обновить все приложения до .NET Core 3.1 и перейти к использованию рекомендованных заменяющих элементов управления.We recommend you update your applications to .NET Core 3.1 and move to the replacement controls. Замена элементов управления не представляет никаких сложностей. Достаточно найти и заменить все вхождения имени типа.Replacing the controls is a straightforward process, essentially "find and replace" on the type.

C++/CLIC++/CLI

Только для WindowsWindows only

Добавлена поддержка создания проектов C++/CLI ("управляемый C++").Support has been added for creating C++/CLI (also known as "managed C++") projects. Двоичные файлы из этих проектов совместимы с .NET Core 3.0 и более поздних версий.Binaries produced from these projects are compatible with .NET Core 3.0 and later versions.

Чтобы добавить поддержку C++/CLI в Visual Studio 2019 версии 16.4, установите рабочую нагрузку Разработка классических приложений на C++.To add support for C++/CLI in Visual Studio 2019 version 16.4, install the Desktop development with C++ workload. При использовании этой рабочей нагрузки в Visual Studio добавляется два шаблона:This workload adds two templates to Visual Studio:

  • библиотека классов CLR (.NET Core);CLR Class Library (.NET Core)
  • пустой проект CLR (.NET Framework).CLR Empty Project (.NET Core)

Следующие шагиNext steps