Новые возможности .NET Core 3.1

В этой статье описаны новые возможности в .NET Core 3.1. Этот выпуск содержит небольшие улучшения относительно .NET Core 3.0. Внимание уделялось нескольким небольшим, но важным исправлениям. Основная особенность .NET Core 3.1 заключается в том, что это выпуск долгосрочной поддержки (LTS).

Если вы используете Visual Studio 2019, для работы с проектами .NET Core 3.1 необходимо обновить Visual Studio 2019 до версии 16.4 или более поздней. Сведения о новых возможностях Visual Studio версии 16.4 см. на странице Новые возможности Visual Studio 2019 версии 16.4.

Visual Studio для Mac также поддерживает и содержит .NET Core 3.1 в версии Visual Studio для Mac 8.4.

Дополнительные сведения см. в объявлении о выпуске .NET Core 3.1.

Долгосрочная поддержка

.NET Core 3.1 объявляется выпуском долгосрочной поддержки. Это означает, что корпорация Майкрософт будет поддерживать его в течение следующих трех лет. Мы настоятельно рекомендуем перевести все приложения на .NET Core 3.1. Текущий жизненный цикл других основных выпусков:

Выпуск Примечание.
.NET Core 3.0 Окончание жизненного цикла 3 марта 2020 г.
.NET Core 2.2 Окончание жизненного цикла 23 декабря 2019 г.
.NET Core 2.1 Окончание жизненного цикла 21 августа 2021 г.

Дополнительные сведения см. в статье о политике поддержки .NET Core.

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

Только macOS

Начиная с заверенного пакета SDK для .NET Core 3.1 для macOS параметр appHost отключен по умолчанию. Дополнительные сведения см. в статье Заверение macOS Catalina и влияние на скачиваемые файлы и проекты .NET Core.

Если параметр appHost включен, .NET Core создает собственный исполняемый файл Mach-O, когда вы выполняете сборку или публикацию. Приложение выполняется в контексте appHost при запуске из исходного кода с помощью команды dotnet run или путем непосредственного запуска исполняемого файла Mach-O.

Без appHost пользователь может запустить приложение, зависящее от платформы, только одним способом — с помощью команды dotnet <filename.dll>. AppHost всегда создается при публикации приложения в автономном виде.

Можно либо настроить appHost на уровне проекта, либо переключить использование appHost для определенной команды dotnet с помощью параметра -p:UseAppHost:

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

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

    dotnet run -p:UseAppHost=true
    

Дополнительные сведения о параметре UseAppHost см. в разделе Свойства MSBuild для Microsoft.NET.Sdk.

Windows Forms

Только для Windows

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

В Windows Forms внесены критические изменения.

В Windows Forms входили устаревшие элементы управления, которые уже некоторое время недоступны на панели элементов конструктора Visual Studio. Они были заменены новыми элементами управления еще в .NET Framework 2.0. Эти элементы управления удалены из пакета SDK для рабочего стола для .NET Core 3.1.

Удаленный элемент управления Рекомендуемая замена Соответствующие удаленные интерфейсы 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 и более поздних версий.

Чтобы добавить поддержку C++/CLI в Visual Studio 2019 версии 16.4, установите рабочую нагрузку Разработка классических приложений на C++. При использовании этой рабочей нагрузки в Visual Studio добавляется два шаблона:

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

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