MSBuild API を使用する

MSBuild は、プログラムがビルドを実行してプロジェクトを検査できるように、パブリック API サーフェスを提供します。 最新バージョンの MSBuild API は、次の NuGet パッケージで見つけることができます。

パッケージ名 説明
Microsoft.Build MSBuild プロジェクトの作成、編集、評価に使用される、Microsoft.Build アセンブリが含まれています。
Microsoft.Build.Framework 他の MSBuild アセンブリによって使用される、共通の MSBuild フレームワーク アセンブリが含まれています。
Microsoft.Build.Runtime MSBuild の完全な実行可能ファイルのコピーを提供します。 このパッケージは、MSBuild のインストールを必要とすることなく、アプリケーションでプロジェクトを読み込んだり、インプロセス ビルドを実行したりする必要がある場合にのみ参照してください。 このパッケージを使用してプロジェクトを評価するには、追加のコンポーネント (コンパイラなど) をアプリケーション ディレクトリに集約する必要があります。
Microsoft.Build.Tasks.Core MSBuild の一般的に使用されるタスクを実装する、Microsoft.Build.Tasks アセンブリが含まれています。
Microsoft.Build.Utilities.Core カスタム MSBuild タスクを実装するために使用される、Microsoft.Build.Utilities アセンブリが含まれています。

さらに、NuGet ではレガシ アセンブリの Microsoft.Build.Engine もホストしています。これは非推奨とされています。

MSBuild API にはいくつかの異なるバージョンがあります。バージョン 15 と 16 では、NuGet パッケージ内に異なる形式のアセンブリが 2 つあります。1 つは .NET Framework でコンパイルされ、もう 1 つは .NET Framework API サーフェスのサブセットである .NET Core でコンパイルされたものです。 .NET Core バージョンの MSBuild は、dotnet コマンドを呼び出すとき、Mac および Linux システムで MSBuild を使用するときに使用されます。

MSBuild API のドキュメントは、.NET API ブラウザーを使用するか、次の一覧の名前空間を参照することによって見つけることができます。

名前空間 適用対象 説明
Microsoft.Build.Construction すべて 評価されていない値を使ってプロジェクト ルートを構築するために、MSBuild オブジェクト モデルによって使用される型が含まれています。 各プロジェクト ルートは、プロジェクトまたはターゲット ファイルに対応します。
Microsoft.Build.Definition すべて プロジェクトの構築をサポートする ProjectOptions クラスが含まれています。
Microsoft.Build.Evaluation すべて プロジェクトを評価するために、MSBuild オブジェクト モデルによって使用される型が含まれています。 各プロジェクトは、1 つまたは複数のプロジェクト ルートに関連付けられています。
Microsoft.Build.Evaluation.Context すべて 呼び出し全体で評価状態を格納するために使用される EvaluationContext クラスが含まれています。
Microsoft.Build.Exceptions すべて ビルド プロセス中にスローされる可能性がある例外の種類が含まれています。
Microsoft.Build.Execution すべて プロジェクトをビルドするために、MSBuild オブジェクト モデルによって使用される型が含まれています。
Microsoft.Build.Framework すべて タスクおよびロガーから MSBuild エンジンとやりとりする方法を定義する型が含まれています。
Microsoft.Build.Framework.Profiler すべて パフォーマンス プロファイルをサポートする型が含まれています。
Microsoft.Build.Framework.XamlTypes .NET Framework のみ ファイル、ルール、その他のソースから解析された XAML 型を表すために使用されるクラスが含まれています。
Microsoft.Build.Globbing すべて ワイルドカードの処理をサポートするクラスが含まれています。
Microsoft.Build.Globbing.Extensions すべて ワイルドカードの処理に対する拡張機能をサポートする型が含まれています。
Microsoft.Build.Graph すべて -graph MSBuild スイッチをサポートする型が含まれています。
Microsoft.Build.Logging すべて ビルドの進行状況のログに記録するために使用される型が含まれています。
Microsoft.Build.ObjectModelRemoting すべて MSBuild でのリモート処理をサポートする型が含まれています。
Microsoft.Build.Tasks すべて MSBuild に付属するすべてのタスクの実装が含まれています。
Microsoft.Build.Tasks.Deployment.Bootstrapper .NET Framework のみ MSBuild によって内部的に使用されるクラスが含まれています。
Microsoft.Build.Tasks.Deployment.ManifestUtilities .NET Framework のみ MSBuild によって使用されるクラスが含まれています。
Microsoft.Build.Tasks.Hosting すべて MSBuild によって内部的に使用されるクラスが含まれています。
Microsoft.Build.Tasks.Xaml .NET Framework のみ XAML ビルド タスクに関連するクラスが含まれています。
Microsoft.Build.Utilities すべて 独自の MSBuild のロガーとタスクを作成するために使用できるヘルパー クラスが含まれています。

前の表の "対象" 列にある "すべて" は、MSBuild API の .NET Framework と .NET Core の両方のバージョンで名前空間の型を使用できることを意味します。