.NET Core 3.1 の新機能What'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 for Mac でも .NET Core 3.1 がサポートされており、Visual Studio for 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 は、次の 3 年間にわたって Microsoft のサポートが提供される LTS リリースです。.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 2020 年 3 月 3 日にサポートが終了します。End of life on March 3, 2020.
.NET Core 2.2.NET Core 2.2 2019 年 12 月 23 日にサポートが終了します。End of life on December 23, 2019.
.NET Core 2.1.NET Core 2.1 2021 年 8 月 21 日にサポートが終了します。End of life on August 21, 2021.

詳細については、「.NET Core のサポート ポリシー」をご覧ください。For more information, see the .NET Core support policy.

macOS appHost と公証macOS appHost and notarization

macOS のみmacOS only

macOS の公証を受けた .NET Core SDK 3.1 以降では、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. dotnet run コマンドを使用してソース コードから実行するか、Mach-O 実行可能ファイルを直接起動すると、アプリは appHost のコンテキストで実行されます。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 framework-dependent app is with the dotnet <filename.dll> command. 自己完結型のアプリを発行すると、常に appHost が作成されます。An appHost is always created when you publish your app self-contained.

プロジェクト レベルで appHost を構成するか、-p:UseAppHost パラメーターを使用して特定の dotnet コマンドの appHost を切り替えることができます。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

  • コマンド ライン パラメーターCommand-line parameter

    dotnet run -p:UseAppHost=true

UseAppHost 設定の詳細については、Microsoft.NET.Sdk の MSBuild プロパティに関する記事を参照してください。For more information about the UseAppHost setting, see MSBuild properties for Microsoft.NET.Sdk.

Windows フォームWindows Forms

Windows のみWindows only


Windows フォームで破壊的変更が行われています。There are breaking changes in Windows Forms.

Windows フォームには、Visual Studio Designer Toolbox でしばらくの間利用できなくなっているレガシ コントロールが含まれていました。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. これらは、Desktop SDK for .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
ToolBarToolBar ToolStrip ToolBarAppearanceToolBarAppearance
ToolBarButtonToolBarButton ToolStripButton ToolBarButtonClickEventArgsToolBarButtonClickEventArgs
ContextMenuContextMenu ContextMenuStrip
Menu ToolStripDropDown
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.


Windows のみWindows 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.

Visual Studio 2019 バージョン 16.4 に C++/CLI のサポートを追加するには、C++ ワークロードを使用するデスクトップ開発をインストールします。To add support for C++/CLI in Visual Studio 2019 version 16.4, install the Desktop development with C++ workload. このワークロードによって、次の 2 つのテンプレートが 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