.NET 6 以降、.NET SDK に付属するプロジェクト テンプレートでは、最新の C# 言語機能が使用されます。 次の言語機能は、テンプレートで生成されたコードで使用されるか、プロジェクトで既定で有効になっています。
最新の C# 言語機能の一部は、以前のターゲット フレームワークではサポートされていないため、次のシナリオで問題が発生する可能性があります。
- .NET 6 テンプレートを使用し、ターゲット フレームワークを以前のバージョンに変更する場合。
- .NET 6 テンプレートを使用し、以前のターゲット フレームワーク バージョンを追加してマルチターゲットを行う場合。
導入されたバージョン
.NET SDK 6.0.100
以前の動作
以前の .NET バージョンでは、プロジェクト テンプレートによって作成された C# コードを変更しなくても、ターゲット フレームワークを以前のバージョンに変更したり、追加のバージョンを追加したりすることができます。
新しい動作
.NET 6 以降では、ターゲット フレームワークを変更または追加するときに、サポートされていない言語機能を使用しないように、テンプレートによって生成された C# コードの変更が必要になる場合があります。 プロジェクトは、これらの変更なしではビルドされません。 コンパイラのエラーと警告は、通常、生成されたコードを変更して新しいターゲット フレームワークと互換性を持たせるようにする方法について説明します。
カテゴリの変更
この変更は ソースの互換性に影響します。
変更の理由
プロジェクト テンプレートを最新の言語機能と同期させる必要があります。 最新のフレームワークをターゲットとする主な使用シナリオでは、最新の C# 言語機能が使用されます。
推奨されるアクション
以前のフレームワーク バージョンに再ターゲットするときにコンパイル時エラーと警告が発生した場合は、その情報を使用して、生成されたコードを変更して、選択したターゲット フレームワークと互換性を持たせるようにします。
古いフレームワークをターゲットにするときのコンパイル時エラーを回避するには、次の推奨事項に従います。
- ターゲット フレームワークを以前のバージョンに変更しないでください。 代わりに、Visual Studio でのプロジェクトの作成時またはコマンド ラインで、
dotnet new <templateName> --framework <targetFramework>を使用して目的のターゲット フレームワークを選択します。 - マルチターゲット プロジェクトを作成する場合は、プロジェクトの作成時に 最も低い ターゲット フレームワーク バージョンを選択します。 プロジェクトの作成後に、追加のターゲット フレームワークを追加します。
影響を受ける API
なし
.NET