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 の両方のバージョンで名前空間の型を使用できることを意味します。