.NET Framework と .NET の両方を並行してコンパイルするソリューションを作成できます。 この記事では、この目標を達成するために役立ついくつかのプロジェクト編成オプションについて説明します。 .NET を使用してプロジェクト レイアウトを設定する方法を決定する際に考慮すべき一般的なシナリオを次に示します。 リストには、必要なものがすべて含まれていない場合があります。
既存のプロジェクトと .NET プロジェクトを 1 つのプロジェクトに結合する
利点:
- それぞれが異なる .NET Framework のバージョンまたはプラットフォームを対象とする複数のプロジェクトではなく、1 つのプロジェクトをコンパイルすることで、ビルド プロセスを簡略化します。
- 1 つのプロジェクト ファイルを管理する必要があるため、マルチターゲット プロジェクトのソース ファイル管理が簡略化されます。 ソース ファイルを追加または削除する場合は、これらのファイルを他のプロジェクトと手動で同期する必要があります。
- NuGet パッケージを簡単に生成して使用できます。
- コンパイラ ディレクティブを使用して、特定の .NET Framework バージョンのコードを記述できます。
欠点:
- 開発者は、Visual Studio 2019 以降のバージョンを使用して既存のプロジェクトを開く必要があります。 以前のバージョンの Visual Studio をサポートするには、 プロジェクト ファイルを別のフォルダーに保持 することをお勧めします。
-
利点:
- Visual Studio 2019 以降のバージョンを持たない可能性がある開発者と共同作成者向けに、既存のプロジェクトでの開発をサポートします。
- 既存のプロジェクトで新しいバグを作成する可能性が低くなります。これらのプロジェクトではコード チャーンが必要ないためです。
この GitHub リポジトリの例を考えてみましょう。 次の図は、このリポジトリがどのようにレイアウトされているかを示しています。
次のセクションでは、リポジトリの例に基づいて .NET のサポートを追加する方法をいくつか説明します。
既存のプロジェクトを複数ターゲットの .NET プロジェクトに置き換える
既存の *.csproj ファイルが削除され、複数のフレームワークを対象とする 1 つの *.csproj ファイルが作成されるように、リポジトリを再構成します。 1 つのプロジェクトが異なるフレームワーク用にコンパイルできるため、これは優れたオプションです。 また、対象となるフレームワークごとに異なるコンパイル オプションと依存関係を処理する機能もあります。
コード例については、 GitHub を参照してください。
メモの変更点は次のとおりです。
- packages.config と *.csproj を新しい .NET *.csproj に置き換えます。 NuGet パッケージは、
<PackageReference> ItemGroup
で指定されます。
既存のプロジェクトを保持し、.NET プロジェクトを作成する
古いフレームワークを対象とする既存のプロジェクトがある場合は、これらのプロジェクトをそのまま残し、.NET プロジェクトを使用して将来のフレームワークをターゲットにすることもできます。
コード例については、 GitHub を参照してください。
.NET と既存のプロジェクトは別々のフォルダーに保持されます。 プロジェクトを別々のフォルダーに保持すると、Visual Studio 2019 以降のバージョンを強制的に使用する必要がなくなります。 古いプロジェクトのみを開く別のソリューションを作成できます。
こちらも参照ください
.NET