.NET Framework と .NET の両方をサポートするようにプロジェクトを整理する
.NET Framework と .NET 両方のコンパイルに同時に対応するソリューションを作成できます。 この記事では、この目標を達成するために役立つ、いくつかのプロジェクトの整理のオプションについて説明します。 ここでは、.NET でプロジェクト レイアウトを設定する方法について決定するときに考慮する典型的なシナリオを紹介します。 一覧では必要なすべてのものがカバーされていない可能性があります。
既存のプロジェクトと .NET プロジェクトを結合し、1 つのプロジェクトを作成する
利点:
- 複数のプロジェクトではなくシングル プロジェクトをコンパイルすることで、ビルド プロセスをシンプルにします。それぞれ、異なる .NET Framework バージョンまたはプラットフォームをターゲットにします。
- ターゲットが複数のプロジェクトのソース ファイル管理をシンプルにします。シングル プロジェクト ファイルを管理することになります。 ソース ファイルの追加または削除時に、代替方法では、これらのファイルを他のプロジェクトと手動で同期する必要があります。
- 使用する NuGet パッケージを簡単に生成します。
- コンパイラ ディレクティブを使用して、.NET Framework の特定のバージョン用のコードを記述できます。
欠点:
- 既存のプロジェクトを開くには、開発者が Visual Studio 2019 以降を使用している必要があります。 旧バージョンの Visual Studio をサポートするには、プロジェクト ファイルを異なるフォルダーで保持することが推奨されます。
-
利点:
- Visual Studio 2019 以降を持っていない場合がある開発者と共同作成者に対して、既存のプロジェクトの開発をサポートします。
- 既存のプロジェクトで新しいバグが発生する可能性が減ります。既存のプロジェクトではコード チャーンが要求されないためです。
この GitHub リポジトリの例について考えてください。 次の図では、このリポジトリのレイアウト方法が示されています。
以下のセクションでは、サンプル リポジトリに基づいて .NET のサポートを追加するいくつかの方法について説明します。
既存の複数のプロジェクトを複数のターゲットを持つ .NET プロジェクトに置き換える
リポジトリを再整理できます。既存の *.csproj ファイルが削除され、複数のフレームワークをターゲットにするシングル *.csproj ファイルが作成されます。 異なるフレームワークに対してシングル プロジェクトでコンパイルできるので、この方法が推奨されます。 さまざまなコンパイル オプション、ターゲットにするフレームワークごとの依存関係などを処理することもできます。
コードの例については、GitHub を参照してください。
注目するべき変更点:
- packages.config と *.csproj が新しい .NET *.csproj に置き換わりました。 NuGet パッケージが
<PackageReference> ItemGroup
で指定されています。
既存のプロジェクトを保持し、.NET プロジェクトを作成する
古いフレームワークをターゲットにする既存のプロジェクトがあるとき、そのようなプロジェクトをそのまま残し、.NET プロジェクトを利用して今後のフレームワークをターゲットにすると効率的な場合があります。
コードの例については、GitHub を参照してください。
.NET と既存のプロジェクトを別々のフォルダーに保存します。 プロジェクトを別々のフォルダーに保存すれば、Visual Studio 2019 以降のバージョンを所有する必要がありません。 古いプロジェクトだけを開く別個のソリューションを作成できます。
関連項目
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示