MSBuild の予約済みおよび既知のプロパティ

MSBuild には、プロジェクト ファイルに関する情報と MSBuild のバイナリに関する情報を格納する一連の定義済みのプロパティが用意されています。 これらのプロパティは、他の MSBuild プロパティと同じように評価されます。 たとえば、MSBuildProjectFile プロパティを使用するには、「$(MSBuildProjectFile)」と入力します。

MSBuild は、次の表の値を使用して予約済みおよび既知のプロパティを事前に定義します。 予約されたプロパティはオーバーライドできませんが、既知のプロパティは同じ名前を持つ環境プロパティ、グローバル プロパティ、またはプロジェクト ファイルで宣言されたプロパティでオーバーライドできます。

予約済みのプロパティと既知のプロパティ

次の表では、MSBuild 予約済みプロパティについて説明します。

プロパティ 説明 予約または既知
MSBuildBinPath 現在使用されている MSBuild バイナリが格納されているフォルダーの絶対パス (C:\Windows\Microsoft.Net\Framework\versionNumber など)。 このプロパティは、MSBuild ディレクトリのファイルを参照する必要がある場合に便利です。

このプロパティに最後の円記号を含めないでください。
予約されています。
MSBuildExtensionsPath .NET Framework 4 で導入: MSBuildExtensionsPath の既定値と MSBuildExtensionsPath32 の既定値の間に違いはありません。 環境変数 MSBUILDLEGACYEXTENSIONSPATH を null 以外の値に設定すると、MSBuildExtensionsPath の既定値の動作を以前のバージョンで有効にすることができます。

.NET Framework 3.5 以前では、MSBuildExtensionsPath の既定値は、現在のプロセスのビット数に応じて、\Program Files\ フォルダーまたは \Program Files (x86) フォルダーの下にある MSBuild サブフォルダーのパスを指していました。 たとえば、64 ビット コンピューター上の 32 ビット プロセスの場合、このプロセスが指すのは \Program Files (x86) フォルダーです。 64 ビット コンピューター上の 64 ビット プロセスの場合、このプロセスが指すのは \Program Files フォルダーです。

このプロパティに最後の円記号を含めないでください。

この場所は、カスタム ターゲット ファイルを格納するために役立ちます。 たとえば、ターゲット ファイルを \Program Files\MSBuild\MyFiles\Northwind.targets にインストールし、次の XML でプロジェクト ファイルにインポートできます。

<Import Project="$(MSBuildExtensionsPath)\MyFiles\Northwind.targets"/>
既知のプロパティ
MSBuildExtensionsPath32 \Program Files フォルダーまたは \Program Files (x86) フォルダーの下にある MSBuild サブフォルダーのパス。 このパスは常に、32 ビット コンピューター上の 32 ビットの \Program Files フォルダー、および 64 ビット コンピューター上の \Program Files (x86) を指します。 MSBuildExtensionsPath および MSBuildExtensionsPath64 も参照してください。

このプロパティに最後の円記号を含めないでください。
既知のプロパティ
MSBuildExtensionsPath64 \Program Files フォルダーの下にある MSBuild サブフォルダーのパス。 64 ビット コンピューターの場合、このパスは常に、\Program Files フォルダーを指します。 32 ビット コンピューターの場合、このパスは空白です。 MSBuildExtensionsPath および MSBuildExtensionsPath32 も参照してください。

このプロパティに最後の円記号を含めないでください。
既知のプロパティ
MSBuildLastTaskResult 前のタスクがエラーを発生することなく完了した場合は、(警告があった場合でも) true を返します。前のタスクでエラーが発生した場合は、false を返します。 通常、エラーがタスクで発生する場合、プロジェクト内ではエラーは最後に発生します。 したがって、このプロパティの値は、次のシナリオ以外では false にはなりません。

- Task 要素 (MSBuild)ContinueOnError の属性が WarnAndContinue (または true)、または ErrorAndContinue に設定されている場合。

- Target に、子要素として OnError 要素 (MSBuild) がある場合。
予約されています。
MSBuildNodeCount ビルド時に使用する同時実行プロセスの最大数。 これは、コマンド ラインで /maxcpucount に指定した値です。 値を使用せずに /maxcpucount を指定した場合、MSBuildNodeCount はコンピューター上のプロセッサの数を示します。 詳細については、「コマンドライン リファレンス」と「複数のプロジェクトの並行ビルド」をご覧ください。 予約されています。
MSBuildProgramFiles32 32 ビットのプログラム フォルダーの場所 (C:\Program Files (x86) など)。

このプロパティに最後の円記号を含めないでください。
予約されています。
MSBuildProjectDefaultTargets DefaultTargets 要素の Project 属性で指定されるターゲットの完全な一覧。 たとえば、次の Project 要素の MSBuildDefaultTargets プロパティの値は A;B;C となります。

<Project DefaultTargets="A;B;C" >
予約されています。
MSBuildProjectDirectory プロジェクト ファイルがあるディレクトリの絶対パス。C:\MyCompany\MyProduct のようになります。

このプロパティに最後の円記号を含めないでください。
予約されています。
MSBuildProjectDirectoryNoRoot ルート ドライブを除く MSBuildProjectDirectory のプロパティの値。

このプロパティに最後の円記号を含めないでください。
予約されています。
MSBuildProjectExtension ピリオドを含むプロジェクト ファイルの名前の拡張子。.proj のようになります。 予約されています。
MSBuildProjectFile ファイル名の拡張子を含むプロジェクト ファイルの完全なファイル名。MyApp.proj のようになります。 予約されています。
MSBuildProjectFullPath ファイル名の拡張子を含む、プロジェクト ファイルの絶対パスと完全なファイル名。C:\MyCompany\MyProduct\MyApp.proj のようになります。 予約されています。
MSBuildProjectName ファイル名の拡張子のないプロジェクト ファイルの名前。MyApp のようになります。 予約されています。
MSBuildRuntimeType 現在実行しているランタイムの型。 MSBuild 15 で導入。 値が未定義の可能性があります (MSBuild 15 より前の場合)。Full はデスクトップの .NET Framework で MSBuild が実行されていることを示し、Core は .NET Core で MSBuild が実行されていることを示し、Mono は Mono で MSBuild が実行されていることを示します。 予約されています。
MSBuildStartupDirectory MSBuild が呼び出されるフォルダーの絶対パス。 このプロパティを使用すると、プロジェクト ツリーの特定の場所にすべての内容をビルドできます。各ディレクトリに dirs.proj ファイルを作成する必要はありません。 次の例に示すように、c:\traversal.proj という名前の 1 つのプロジェクトだけが作成されます。

<Project ...> <ItemGroup> <ProjectFiles Include="$ (MSBuildStartupDirectory) **\*.csproj"/> </ItemGroup> <Target Name="build"> <MSBuild Projects="@(ProjectFiles)"/> </Target> </Project>

ツリー上の任意の場所でビルドするには、次のように入力します。

msbuild c:\traversal.proj

このプロパティに最後の円記号を含めないでください。
予約されています。
MSBuildThisFile MSBuildThisFileFullPath のファイル名とファイル拡張子の部分。 予約されています。
MSBuildThisFileDirectory MSBuildThisFileFullPath のディレクトリの部分。

パスに最後の円記号を含めます。
予約されています。
MSBuildThisFileDirectoryNoRoot MSBuildThisFileFullPath のディレクトリの部分 (ルート ドライブを除く)。

パスに最後の円記号を含めます。
予約されています。
MSBuildThisFileExtension MSBuildThisFileFullPath のファイル名拡張子の部分。 予約されています。
MSBuildThisFileFullPath 実行中のターゲットを含むプロジェクト ファイルまたはターゲット ファイルの絶対パス。

ヒント:ターゲット ファイルに対して相対的であり、元のプロジェクト ファイルに対しては相対的ではない位置を示す、ターゲット ファイルの相対パスを指定できます。
予約されています。
MSBuildThisFileName MSBuildThisFileFullPath のファイル名の部分 (ファイル名拡張子を除く)。 予約されています。
MSBuildToolsPath MSBuild の値に関連付けられている MSBuildToolsVersion のバージョンのインストール パス。

パスに最後の円記号を含めません。

このプロパティはオーバーライドできません。
予約されています。
MSBuildToolsVersion プロジェクトのビルドに使用する MSBuild ツールセットのバージョン。

メモ:MSBuild ツールセットは、アプリケーションのビルドで使用するタスク、ターゲット、およびツールで構成されます。 ツールには、csc.exe や vbc.exe などのコンパイラが含まれます。 詳細については、「MSBuild ツールセット (ToolsVersion)」と「標準ツールセット構成とカスタム ツールセット構成」をご覧ください。
予約されています。

関連項目

MSBuild リファレンス MSBuild プロパティ