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 でコンパイルされます。 MSBuild の .NET Core バージョンは、 dotnet コマンドを呼び出すとき、および Mac および Linux システムで MSBuild を使用するときに使用されます。
MSBuild API のドキュメントは、 .NET API ブラウザーを使用するか、次の一覧の名前空間を参照することで確認できます。
| Namespace | 適用対象 | 説明 |
|---|---|---|
| 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 バージョンの両方で使用可能であることを意味します。
MSBuild ロケーター
MSBuild ロケーターは、コンピューター上の MSBuild を検索するために使用できる API です。 インストールされているバージョンの MSBuild を検索する場合は、ビルド ツールの開発で使用できます。
NuGetPackage は Microsoft.Build.Locator にあり、リファレンス ドキュメントは Microsoft にあります。
MSBuildLocator の詳細については、「 MSBuild バージョンの検索と使用」を参照してください。