MSBuild の予約済みおよび既知のプロパティMSBuild Reserved and Well-Known Properties

MSBuildMSBuild には、プロジェクト ファイルに関する情報と MSBuildMSBuild のバイナリに関する情報を格納する一連の定義済みのプロパティが用意されています。 provides a set of predefined properties that store information about the project file and the MSBuildMSBuild binaries. これらのプロパティは、他の MSBuildMSBuild プロパティと同じように評価されます。These properties are evaluated in the same manner as other MSBuildMSBuild properties. たとえば、MSBuildProjectFile プロパティを使用するには、「$(MSBuildProjectFile)」と入力します。For example, to use the MSBuildProjectFile property, you type $(MSBuildProjectFile).

MSBuild は、次の表の値を使用して予約済みおよび既知のプロパティを事前に定義します。MSBuild uses the values in the following table to predefine reserved and well-known properties. 予約されたプロパティはオーバーライドできませんが、既知のプロパティは同じ名前を持つ環境プロパティ、グローバル プロパティ、またはプロジェクト ファイルで宣言されたプロパティでオーバーライドできます。Reserved properties cannot be overridden, but well-known properties can be overridden by using identically named environment properties, global properties, or properties that are declared in the project file.

予約済みのプロパティと既知のプロパティReserved and Well-Known Properties

次の表では、MSBuildMSBuild 予約済みプロパティについて説明します。The following table describes the MSBuildMSBuild predefined properties.

プロパティProperty 説明Description 予約または既知Reserved or Well-Known
MSBuildBinPath 現在使用されている MSBuildMSBuild バイナリが格納されているフォルダーの絶対パス (C:\Windows\Microsoft.Net\Framework\versionNumber など)。The absolute path of the folder where the MSBuildMSBuild binaries that are currently being used are located (for example, C:\Windows\Microsoft.Net\Framework\versionNumber). このプロパティは、MSBuildMSBuild ディレクトリのファイルを参照する必要がある場合に便利です。This property is useful if you have to refer to files in the MSBuildMSBuild directory.

このプロパティに最後の円記号を含めないでください。Do not include the final backslash on this property.
予約されています。Reserved
MSBuildExtensionsPath .NET Framework 4 で導入: MSBuildExtensionsPath の既定値と MSBuildExtensionsPath32 の既定値の間に違いはありません。Introduced in the .NET Framework 4: there is no difference between the default values of MSBuildExtensionsPath and MSBuildExtensionsPath32. 環境変数 MSBUILDLEGACYEXTENSIONSPATH を null 以外の値に設定すると、MSBuildExtensionsPath の既定値の動作を以前のバージョンで有効にすることができます。You can set the environment variable MSBUILDLEGACYEXTENSIONSPATH to a non-null value to enable the behavior of the default value of MSBuildExtensionsPath in earlier versions.

.NET Framework 3.5 以前では、MSBuildExtensionsPath の既定値は、現在のプロセスのビット数に応じて、\Program Files\ フォルダーまたは \Program Files (x86) フォルダーの下にある MSBuild サブフォルダーのパスを指していました。In the .NET Framework 3.5 and earlier, the default value of MSBuildExtensionsPath points to the path of the MSBuild subfolder under the \Program Files\ or \Program Files (x86) folder, depending on the bitness of the current process. たとえば、64 ビット コンピューター上の 32 ビット プロセスの場合、このプロセスが指すのは \Program Files (x86) フォルダーです。For example, for a 32-bit process on a 64-bit machine, this property points to the \Program Files (x86) folder. 64 ビット コンピューター上の 64 ビット プロセスの場合、このプロセスが指すのは \Program Files フォルダーです。For a 64-bit process on a 64-bit machine, this property points to the \Program Files folder.

このプロパティに最後の円記号を含めないでください。Do not include the final backslash on this property.

この場所は、カスタム ターゲット ファイルを格納するために役立ちます。This location is a useful place to put custom target files. たとえば、ターゲット ファイルを \Program Files\MSBuild\MyFiles\Northwind.targets にインストールし、次の XML でプロジェクト ファイルにインポートできます。For example, your target files could be installed at \Program Files\MSBuild\MyFiles\Northwind.targets and then imported in project files by using this XML code:

<Import Project="$(MSBuildExtensionsPath)\MyFiles\Northwind.targets"/>
既知のプロパティWell-Known
MSBuildExtensionsPath32 \Program Files フォルダーまたは \Program Files (x86) フォルダーの下にある MSBuildMSBuild サブフォルダーのパス。The path of the MSBuildMSBuild subfolder under the \Program Files or \Program Files (x86) folder. このパスは常に、32 ビット コンピューター上の 32 ビットの \Program Files フォルダー、および 64 ビット コンピューター上の \Program Files (x86) を指します。This path always points to the 32-bit \Program Files folder on a 32-bit machine and \Program Files (x86) on a 64-bit machine. MSBuildExtensionsPath および MSBuildExtensionsPath64 も参照してください。See also MSBuildExtensionsPath and MSBuildExtensionsPath64.

このプロパティに最後の円記号を含めないでください。Do not include the final backslash on this property.
既知のプロパティWell-Known
MSBuildExtensionsPath64 \Program Files フォルダーの下にある MSBuildMSBuild サブフォルダーのパス。The path of the MSBuildMSBuild subfolder under the \Program Files folder. 64 ビット コンピューターの場合、このパスは常に、\Program Files フォルダーを指します。For a 64-bit machine, this path always points to the \Program Files folder. 32 ビット コンピューターの場合、このパスは空白です。For a 32-bit machine, this path is blank. MSBuildExtensionsPath および MSBuildExtensionsPath32 も参照してください。See also MSBuildExtensionsPath and MSBuildExtensionsPath32.

このプロパティに最後の円記号を含めないでください。Do not include the final backslash on this property.
既知のプロパティWell-Known
MSBuildLastTaskResult 前のタスクがエラーを発生することなく完了した場合は、(警告があった場合でも) true を返します。前のタスクでエラーが発生した場合は、false を返します。true if the previous task completed without any errors (even if there were warnings), or false if the previous task had errors. 通常、エラーがタスクで発生する場合、プロジェクト内ではエラーは最後に発生します。Typically, when an error occurs in a task, the error is the last thing that happens in that project. したがって、このプロパティの値は、次のシナリオ以外では false にはなりません。Therefore, the value of this property is never false, except in these scenarios:

- Task 要素 (MSBuild)ContinueOnError の属性が WarnAndContinue (または true)、または ErrorAndContinue に設定されている場合。- When the ContinueOnError attribute of the Task Element (MSBuild) is set to WarnAndContinue (or true) or ErrorAndContinue.

- Target に、子要素として OnError 要素 (MSBuild) がある場合。- When the Target has an OnError Element (MSBuild) as a child element.
予約されています。Reserved
MSBuildNodeCount ビルド時に使用する同時実行プロセスの最大数。The maximum number of concurrent processes that are used when building. これは、コマンド ラインで /maxcpucount に指定した値です。This is the value that you specified for /maxcpucount on the command line. 値を使用せずに /maxcpucount を指定した場合、MSBuildNodeCount はコンピューター上のプロセッサの数を示します。If you specified /maxcpucount without specifying a value, then MSBuildNodeCount specifies the number of processors in the computer. 詳細については、「コマンドライン リファレンス」と「複数のプロジェクトの並行ビルド」をご覧ください。For more information, see Command-Line Reference and Building Multiple Projects in Parallel. 予約されています。Reserved
MSBuildProgramFiles32 32 ビットのプログラム フォルダーの場所 (C:\Program Files (x86) など)。The location of the 32-bit program folder; for example, C:\Program Files (x86).

このプロパティに最後の円記号を含めないでください。Do not include the final backslash on this property.
予約されています。Reserved
MSBuildProjectDefaultTargets DefaultTargets 要素の Project 属性で指定されるターゲットの完全な一覧。The complete list of targets that are specified in the DefaultTargets attribute of the Project element. たとえば、次の Project 要素の MSBuildDefaultTargets プロパティの値は A;B;C となります。For example, the following Project element would have an MSBuildDefaultTargets property value of A;B;C:

<Project DefaultTargets="A;B;C" >
予約されています。Reserved
MSBuildProjectDirectory プロジェクト ファイルがあるディレクトリの絶対パス。C:\MyCompany\MyProduct のようになります。The absolute path of the directory where the project file is located, for example C:\MyCompany\MyProduct.

このプロパティに最後の円記号を含めないでください。Do not include the final backslash on this property.
予約されています。Reserved
MSBuildProjectDirectoryNoRoot ルート ドライブを除く MSBuildProjectDirectory のプロパティの値。The value of the MSBuildProjectDirectory property, excluding the root drive.

このプロパティに最後の円記号を含めないでください。Do not include the final backslash on this property.
予約されています。Reserved
MSBuildProjectExtension ピリオドを含むプロジェクト ファイルの名前の拡張子。.proj のようになります。The file name extension of the project file, including the period; for example, .proj. 予約されています。Reserved
MSBuildProjectFile ファイル名の拡張子を含むプロジェクト ファイルの完全なファイル名。MyApp.proj のようになります。The complete file name of the project file, including the file name extension; for example, MyApp.proj. 予約されています。Reserved
MSBuildProjectFullPath ファイル名の拡張子を含む、プロジェクト ファイルの絶対パスと完全なファイル名。C:\MyCompany\MyProduct\MyApp.proj のようになります。The absolute path and complete file name of the project file, including the file name extension; for example, C:\MyCompany\MyProduct\MyApp.proj. 予約されています。Reserved
MSBuildProjectName ファイル名の拡張子のないプロジェクト ファイルの名前。MyApp のようになります。The file name of the project file without the file name extension; for example, MyApp. 予約されています。Reserved
MSBuildRuntimeType 現在実行しているランタイムの型。The type of the runtime that is currently executing. MSBuild 15 で導入。Introduced in MSBuild 15. 値が未定義の可能性があります (MSBuild 15 より前の場合)。Full はデスクトップの .NET Framework で MSBuild が実行されていることを示し、Core は .NET Core で MSBuild が実行されていることを示し、Mono は Mono で MSBuild が実行されていることを示します。Value may be undefined (prior to MSBuild 15), Full indicating that MSBuild is running on the desktop .NET Framework, Core indicating that MSBuild is running on .NET Core, or Mono indicating that MSBuild is running on Mono. 予約されています。Reserved
MSBuildStartupDirectory MSBuildMSBuild が呼び出されるフォルダーの絶対パス。The absolute path of the folder where MSBuildMSBuild is called. このプロパティを使用すると、プロジェクト ツリーの特定の場所にすべての内容をビルドできます。各ディレクトリに dirs.proj ファイルを作成する必要はありません。By using this property, you can build everything below a specific point in a project tree without creating dirs.proj files in every directory. 次の例に示すように、c:\traversal.proj という名前の 1 つのプロジェクトだけが作成されます。Instead, you have just one project—for example, c:\traversal.proj, as shown here:

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

ツリー上の任意の場所でビルドするには、次のように入力します。To build at any point in the tree, type:

msbuild c:\traversal.proj

このプロパティに最後の円記号を含めないでください。Do not include the final backslash on this property.
予約されています。Reserved
MSBuildThisFile MSBuildThisFileFullPath のファイル名とファイル拡張子の部分。The file name and file extension portion of MSBuildThisFileFullPath. 予約されています。Reserved
MSBuildThisFileDirectory MSBuildThisFileFullPath のディレクトリの部分。The directory portion of MSBuildThisFileFullPath.

パスに最後の円記号を含めます。Include the final backslash in the path.
予約されています。Reserved
MSBuildThisFileDirectoryNoRoot MSBuildThisFileFullPath のディレクトリの部分 (ルート ドライブを除く)。The directory portion of MSBuildThisFileFullPath, excluding the root drive.

パスに最後の円記号を含めます。Include the final backslash in the path.
予約されています。Reserved
MSBuildThisFileExtension MSBuildThisFileFullPath のファイル名拡張子の部分。The file name extension portion of MSBuildThisFileFullPath. 予約されています。Reserved
MSBuildThisFileFullPath 実行中のターゲットを含むプロジェクト ファイルまたはターゲット ファイルの絶対パス。The absolute path of the project or targets file that contains the target that is running.

ヒント:ターゲット ファイルに対して相対的であり、元のプロジェクト ファイルに対しては相対的ではない位置を示す、ターゲット ファイルの相対パスを指定できます。Tip: You can specify a relative path in a targets file that's relative to the targets file and not relative to the original project file.
予約されています。Reserved
MSBuildThisFileName MSBuildThisFileFullPath のファイル名の部分 (ファイル名拡張子を除く)。The file name portion of MSBuildThisFileFullPath, without the file name extension. 予約されています。Reserved
MSBuildToolsPath MSBuildMSBuild の値に関連付けられている MSBuildToolsVersion のバージョンのインストール パス。The installation path of the MSBuildMSBuild version that's associated with the value of MSBuildToolsVersion.

パスに最後の円記号を含めません。Do not include the final backslash in the path.

このプロパティはオーバーライドできません。This property cannot be overridden.
予約されています。Reserved
MSBuildToolsVersion プロジェクトのビルドに使用する MSBuildMSBuild ツールセットのバージョン。The version of the MSBuildMSBuild Toolset that is used to build the project.

メモ:MSBuildMSBuild ツールセットは、アプリケーションのビルドで使用するタスク、ターゲット、およびツールで構成されます。Note: An MSBuildMSBuild Toolset consists of tasks, targets, and tools that are used to build an application. ツールには、csc.exe や vbc.exe などのコンパイラが含まれます。The tools include compilers such as csc.exe and vbc.exe. 詳細については、「MSBuild ツールセット (ToolsVersion)」と「標準ツールセット構成とカスタム ツールセット構成」をご覧ください。For more information, see Toolset (ToolsVersion), and Standard and Custom Toolset Configurations.
予約されています。Reserved

MSBuild の要素と競合する名前Names that conflict with MSBuild elements

上記に加え、MSBuild 言語の要素に対応する名前を、ユーザー定義のプロパティ、項目、または項目メタデータに使うことはできません。In addition to the above, names corresponding to MSBuild language elements cannot be used for user-defined properties, items, or item metadata:

  • VisualStudioProjectVisualStudioProject
  • ターゲットTarget
  • PropertyGroupPropertyGroup
  • 出力Output
  • ItemGroupItemGroup
  • UsingTaskUsingTask
  • ProjectExtensionsProjectExtensions
  • OnErrorOnError
  • ImportGroupImportGroup
  • [保存]Choose
  • 目的When
  • OtherwiseOtherwise

参照See Also

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