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

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

MSBuild は、次の表の値を使用して予約済みおよび既知のプロパティを事前に定義します。 予約済みプロパティをオーバーライドすることはできません。また、高度なシナリオの場合を除き、ほとんどの既知のプロパティをオーバーライドすることはしないでください。

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

このセクションの表では、MSBuild の定義済みプロパティを示します。 テーブルの "例" の列は、次に示すプロジェクト ファイルの例に関係しており (C:\Source\Repos\ConsoleApp1\ConsoleApp1 にあるものと想定されています)、特別なコマンドライン オプションを指定せずに MSBuild を呼び出す場合に、プロジェクト ファイルでアクセスしたときにこれらのプロパティが持つ値の例を示しています。

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>
</Project>
プロパティ 予約または既知 説明
FrameworkSDKRoot 既知 .NET Framework ツールのルート フォルダーへのパス。 C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\
InnerBuildProperty 既知 マルチターゲット ビルド ディメンションを定義するプロパティ名を指定します (現在のビルドがグラフ ビルドの場合にのみ適用されます)。 TargetFramework
InnerBuildPropertyValues 既知 InnerBuildProperty に可能な値を保持するプロパティ名を指定します (現在のビルドがグラフ ビルドの場合にのみ適用されます)。 TargetFrameworks
IsGraphBuild 既知 これがグラフ ビルドの場合は True。つまり、-graphBuild オプションは有効です。 このオプションは、MSBuild がプロジェクト グラフを構成、構築することを意味します。 グラフを作成するには、依存関係を形成するためのプロジェクト参照を識別する必要があります。 このグラフを構築するには、プロジェクト参照を、プロジェクトによって参照される前にビルドする必要があります。これは従来の MSBuild のスケジュールとは異なります。
MSBuildAssemblyVersion 予約済み プロジェクトのビルドに使用される MSBuild アセンブリのバージョン。 16.0
MSBuildBinPath 予約済み 現在使用されている MSBuild のバイナリが配置されているフォルダーの絶対パス (例: "C:\Windows\Microsoft.Net\Framework\<バージョン番号>")。 このプロパティは、MSBuild ディレクトリ内のファイルを参照する必要がある場合に便利です。

このプロパティに最後の円記号を含めないでください。
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Current\Bin
MSBuildDisableFeaturesFromVersion 予約済み MSBuild と Microsoft SDK で変更ウェーブを管理するために使用されます。
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"/>
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild
MSBuildExtensionsPath32 既知 \Program Files フォルダーまたは \Program Files (x86) フォルダーの下にある MSBuild サブフォルダーのパス。 パスは常に、32 ビット コンピューター上の 32 ビットの \Program Files (x86) フォルダー、および 64 ビット コンピューター上の \Program Files を指します。 MSBuildExtensionsPath および MSBuildExtensionsPath64 も参照してください。

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

このプロパティに最後の円記号を含めないでください。
C:\Program Files\MSBuild
MSBuildFileVersion 予約済み プロジェクトのビルドに使用される MSBuild アセンブリの 4 パート バージョン。 16.11.0.30701
MSBuildFrameworkToolsPath 既知 現在実行中の MSBuild のビルドに使用した .NET Framework ツールへのパス。末尾にスラッシュが付きます。 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\
MSBuildFrameworkToolsPath32 既知 現在実行中の MSBuild のビルドに使用された同じフレームワーク バージョンの .NET Framework ツールの 32 ビット バージョンへのパス。末尾にスラッシュが付きます。 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\
MSBuildFrameworkToolsPath64 既知 現在実行中の MSBuild のビルドに使用された同じフレームワーク バージョンの .NET Framework ツールの 64 ビット バージョンへのパス。末尾にスラッシュが付きます。 C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\
MSBuildInteractive 予約されています。 MSBuild が対話形式で実行されている場合は true であり、ユーザー入力が許可されます。 この設定は、-interactive コマンドライン オプションを使用して制御できます。 false
MSBuildLastTaskResult 予約されています。 前のタスクがエラーを発生することなく完了した場合は、(警告があった場合でも) true を返します。前のタスクでエラーが発生した場合は、false を返します。 通常、エラーがタスクで発生する場合、プロジェクト内ではエラーは最後に発生します。 したがって、このプロパティの値は、次のシナリオ以外では false にはなりません。

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

- Target に、子要素として OnError 要素 (MSBuild) がある場合。
true
MSBuildNodeCount 予約されています。 ビルド時に使用する同時実行プロセスの最大数。 これは、コマンド ラインで -maxcpucount に指定した値です。 値を使用せずに -maxcpucount を指定した場合、MSBuildNodeCount はコンピューター上のプロセッサの数を示します。 詳細については、「コマンドライン リファレンス」と「複数のプロジェクトの並行ビルド」を参照してください。 1
MSBuildOverrideTasksPath 既知 .overridetasks ファイルを検索する場所。これは、標準タスクのカスタム バージョンを提供するために使用できます。 「MSBuild タスク」を参照してください。

パスに最後の円記号を含めません。
MSBuildProgramFiles32 予約されています。 32 ビットのプログラム フォルダーの場所 (C:\Program Files (x86) など)。

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

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

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

このプロパティに最後の円記号を含めないでください。
Source\Repos\ConsoleApp1\ConsoleApp1
MSBuildProjectExtension 予約されています。 ピリオドを含むプロジェクト ファイルの名前の拡張子 ( .proj など)。 .csproj
MSBuildProjectFile 予約されています。 ファイル名拡張子を含むプロジェクト ファイルの完全なファイル名 (MyApp.proj など)。 ConsoleApp1.csproj
MSBuildProjectFullPath 予約されています。 ファイル名拡張子を含む、プロジェクト ファイルの絶対パスと完全なファイル名 (C:\MyCompany\MyProduct\MyApp.proj など)。 c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj
MSBuildProjectName 予約されています。 ファイル名拡張子のないプロジェクト ファイルの名前 (MyApp など)。 ConsoleApp1
MSBuildRuntimeType 予約されています。 現在実行しているランタイムの型。 MSBuild 15 で導入。 値が未定義の可能性があります (MSBuild 15 より前の場合)。Full はデスクトップの .NET Framework 上で MSBuild が実行されていることを示し、Core は .NET Core 上で MSBuild が実行されていることを示し (たとえば dotnet build で)、Mono は Mono 上で MSBuild が実行されていることを示します。 Full
MSBuildSDKsPath 既知 SDK を検索するために MSBuild によって使用されるパス。 C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Sdks
MSBuildSemanticVersion 予約済み プロジェクトのビルドに使用される MSBuild アセンブリのフル semver 2.0 バージョン。 16.11.0-preview-21302-05+5e37cc992
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

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

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

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

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

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

このプロパティはオーバーライドできません。
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Current\Bin\
MSBuildToolsPath32 既知 MSBuildToolsVersion の値に関連付けられている 32 ビット MSBuild バージョンのインストール パス。

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

このプロパティはオーバーライドできません。
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Current\Bin
MSBuildToolsPath64 既知 MSBuildToolsVersion の値に関連付けられている 64 ビット MSBuild バージョンのインストール パス。

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

このプロパティはオーバーライドできません。
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Current\Bin\amd64
MSBuildToolsVersion 予約されています。 プロジェクトのビルドに使用する MSBuild ツールセットのバージョン。

メモ:MSBuild ツールセットは、アプリケーションのビルドに使用されるタスク、ターゲット、およびツールで構成されています。 ツールには、csc.exevbc.exe などのコンパイラが含まれます。 詳細については、「ツールセット (ToolsVersion)」と「標準ツールセット構成とカスタム ツールセット構成」を参照してください。
Current
MSBuildUserExtensionsPath 既知 このパスでは、MSBuild インストール フォルダーの場所が提供されます。 リセットして、ローカルのユーザーごとのカスタマイズを提供することができます。 「ローカル ビルドをカスタマイズする」を参照してください。

パスに最後の円記号を含めません。
MSBuildVersion 予約されています。 プロジェクトのビルドに使用される MSBuild のバージョン。

このプロパティはオーバーライドできません。オーバーライドすると、エラー メッセージ MSB4004 - The 'MSBuildVersion' property is reserved, and can not be modified. が返されます。
16.11.0
MSBuildWarningsAsErrors 既知 エラーとして処理する警告コードの一覧。 MSB1234;MSB5678
MSBuildWarningsAsMessages 既知 メッセージとして処理する警告コードの一覧。 MSB1234;MSB5678
MSBuildWarningsNotAsErrors 既知 他のすべての警告をエラーに変更するように -warnAsError スイッチが設定されている場合でも、エラーに変更しない警告コードの一覧。 true ではない場合、影響を受けない点に注意してください。 MSB1234;MSB5678
OS 既知 Windows では、これはホスト オペレーティング システムから継承されます。 指定できる値には、"Windows_NT" と "Unix" があります。これは、Windows 以外のオペレーティング システムで異なる値に設定できます。
RoslynTargetsPath 既知 Roslyn コンパイラへのパス。 C:\Program Files\Microsoft Visual Studio\2019\MSBuild\Current\Bin\Roslyn
SDK35ToolsPath 既知 .NET Framework 3.5 ツールへのパス。
SDK40ToolsPath 既知 .NET Framework 4.0 ツールへのパス。 C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\
VsInstallRoot 既知 Visual Studio インストール フォルダー。 C:\Program Files (x86)\Microsoft Visual Studio\2019
WindowsSDK80Path 既知
プロパティ 予約または既知 説明
FrameworkSDKRoot 既知 .NET Framework ツールのルート フォルダーへのパス。 C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\
InnerBuildProperty 既知 マルチターゲット ビルド ディメンションを定義するプロパティ名を指定します (現在のビルドがグラフ ビルドの場合にのみ適用されます)。 TargetFramework
InnerBuildPropertyValues 既知 InnerBuildProperty に可能な値を保持するプロパティ名を指定します (現在のビルドがグラフ ビルドの場合にのみ適用されます)。 TargetFrameworks
IsGraphBuild 既知 これがグラフ ビルドの場合は True。つまり、-graphBuild オプションは有効です。 このオプションは、MSBuild がプロジェクト グラフを構成、構築することを意味します。 グラフを作成するには、依存関係を形成するためのプロジェクト参照を識別する必要があります。 このグラフを構築するには、プロジェクト参照を、プロジェクトによって参照される前にビルドする必要があります。これは従来の MSBuild のスケジュールとは異なります。
MSBuildAssemblyVersion 予約済み プロジェクトのビルドに使用される MSBuild アセンブリのバージョン。 17.0
MSBuildBinPath 予約されています。 現在使用されている MSBuild のバイナリが配置されているフォルダーの絶対パス (例: "C:\Windows\Microsoft.Net\Framework\<バージョン番号>")。 このプロパティは、MSBuild ディレクトリ内のファイルを参照する必要がある場合に便利です。

このプロパティに最後の円記号を含めないでください。
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64
MSBuildDisableFeaturesFromVersion 予約済み MSBuild と Microsoft SDK で変更ウェーブを管理するために使用されます。
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"/>
C:\Program Files\Microsoft Visual Studio\2022\MSBuild
MSBuildExtensionsPath32 既知 \Program Files フォルダーまたは \Program Files (x86) フォルダーの下にある MSBuild サブフォルダーのパス。 パスは常に、32 ビット コンピューター上の 32 ビットの \Program Files (x86) フォルダー、および 64 ビット コンピューター上の \Program Files を指します。 MSBuildExtensionsPath および MSBuildExtensionsPath64 も参照してください。

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

このプロパティに最後の円記号を含めないでください。
C:\Program Files\MSBuild
MSBuildFileVersion 予約済み プロジェクトのビルドに使用される MSBuild アセンブリの 4 パート バージョン。 17.4.0.46505
MSBuildFrameworkToolsPath 既知 現在実行中の MSBuild のビルドに使用した .NET Framework ツールへのパス。末尾にスラッシュが付きます。 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\
MSBuildFrameworkToolsPath32 既知 現在実行中の MSBuild のビルドに使用された同じフレームワーク バージョンの .NET Framework ツールの 32 ビット バージョンへのパス。末尾にスラッシュが付きます。 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\
MSBuildFrameworkToolsPath64 既知 現在実行中の MSBuild のビルドに使用された同じフレームワーク バージョンの .NET Framework ツールの 64 ビット バージョンへのパス。末尾にスラッシュが付きます。 C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\
MSBuildInteractive 予約されています。 MSBuild が対話形式で実行されている場合は true であり、ユーザー入力が許可されます。 この設定は、-interactive コマンドライン オプションを使用して制御できます。 false
MSBuildLastTaskResult 予約されています。 前のタスクがエラーを発生することなく完了した場合は、(警告があった場合でも) true を返します。前のタスクでエラーが発生した場合は、false を返します。 通常、エラーがタスクで発生する場合、プロジェクト内ではエラーは最後に発生します。 したがって、このプロパティの値は、次のシナリオ以外では false にはなりません。

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

- Target に、子要素として OnError 要素 (MSBuild) がある場合。
true
MSBuildNodeCount 予約されています。 ビルド時に使用する同時実行プロセスの最大数。 これは、コマンド ラインで -maxcpucount に指定した値です。 値を使用せずに -maxcpucount を指定した場合、MSBuildNodeCount はコンピューター上のプロセッサの数を示します。 詳細については、「コマンドライン リファレンス」と「複数のプロジェクトの並行ビルド」を参照してください。 1
MSBuildOverrideTasksPath 既知 .overridetasks ファイルを検索する場所。これは、標準タスクのカスタム バージョンを提供するために使用できます。 「MSBuild タスク」を参照してください。

パスに最後の円記号を含めません。
MSBuildProgramFiles32 予約されています。 32 ビットのプログラム フォルダーの場所 (C:\Program Files (x86) など)。

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

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

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

このプロパティに最後の円記号を含めないでください。
Source\Repos\ConsoleApp1\ConsoleApp1
MSBuildProjectExtension 予約されています。 ピリオドを含むプロジェクト ファイルの名前の拡張子 ( .proj など)。 .csproj
MSBuildProjectFile 予約されています。 ファイル名拡張子を含むプロジェクト ファイルの完全なファイル名 (MyApp.proj など)。 ConsoleApp1.csproj
MSBuildProjectFullPath 予約されています。 ファイル名拡張子を含む、プロジェクト ファイルの絶対パスと完全なファイル名 (C:\MyCompany\MyProduct\MyApp.proj など)。 c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj
MSBuildProjectName 予約されています。 ファイル名拡張子のないプロジェクト ファイルの名前 (MyApp など)。 ConsoleApp1
MSBuildRuntimeType 予約されています。 現在実行しているランタイムの型。 MSBuild 15 で導入。 値が未定義の可能性があります (MSBuild 15 より前の場合)。Full はデスクトップの .NET Framework 上で MSBuild が実行されていることを示し、Core は .NET Core 上で MSBuild が実行されていることを示し (たとえば dotnet build で)、Mono は Mono 上で MSBuild が実行されていることを示します。 Full
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

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

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

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

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

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

このプロパティはオーバーライドできません。
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64
MSBuildToolsPath32 既知 MSBuildToolsVersion の値に関連付けられている 32 ビット MSBuild バージョンのインストール パス。

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

このプロパティはオーバーライドできません。
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin
MSBuildToolsPath64 既知 MSBuildToolsVersion の値に関連付けられている 64 ビット MSBuild バージョンのインストール パス。

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

このプロパティはオーバーライドできません。
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64
MSBuildToolsVersion 予約されています。 プロジェクトのビルドに使用する MSBuild ツールセットのバージョン。

メモ:MSBuild ツールセットは、アプリケーションのビルドに使用されるタスク、ターゲット、およびツールで構成されています。 ツールには、csc.exevbc.exe などのコンパイラが含まれます。 詳細については、「ツールセット (ToolsVersion)」と「標準ツールセット構成とカスタム ツールセット構成」を参照してください。
Current
MSBuildSDKsPath 既知 SDK を検索するために MSBuild によって使用されるパス。 C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Sdks
MSBuildSemanticVersion 予約済み プロジェクトのビルドに使用される MSBuild アセンブリのフル semver 2.0 バージョン。 17.4.0-preview-22465-05+6033e4c95
MSBuildUserExtensionsPath 既知 このパスでは、MSBuild インストール フォルダーの場所が提供されます。 リセットして、ローカルのユーザーごとのカスタマイズを提供することができます。 「ローカル ビルドをカスタマイズする」を参照してください。

パスに最後の円記号を含めません。
MSBuildVersion 予約されています。 プロジェクトのビルドに使用される MSBuild のバージョン。

このプロパティはオーバーライドできません。オーバーライドすると、エラー メッセージ MSB4004 - The 'MSBuildVersion' property is reserved, and can not be modified. が返されます。
17.4.0
MSBuildWarningsAsErrors 既知 エラーとして処理する警告コードの一覧。 MSB1234;MSB5678
MSBuildWarningsAsMessages 既知 メッセージとして処理する警告コードの一覧。 MSB1234;MSB5678
MSBuildWarningsNotAsErrors 既知 他のすべての警告をエラーに変更するように -warnAsError スイッチが設定されている場合でも、エラーに変更しない警告コードの一覧。 true ではない場合、影響を受けない点に注意してください。 MSB1234;MSB5678
OS 既知 Windows では、これはホスト オペレーティング システムから継承されます。 指定できる値には、"Windows_NT" と "Unix" があります。これは、Windows 以外のオペレーティング システムで異なる値に設定できます。
RoslynTargetsPath 既知 Roslyn コンパイラのターゲットへのパス。 C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\Roslyn
SDK35ToolsPath 既知 .NET Framework 3.5 ツールへのパス。
SDK40ToolsPath 既知 .NET Framework 4.0 ツールへのパス。 C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\
VsInstallRoot 既知 Visual Studio インストール フォルダー。 C:\Program Files\Microsoft Visual Studio\2022
WindowsSDK80Path 既知 Windows 8 SDK へのパス。

C++ プロジェクトに固有のプロパティ

次のプロパティは、さまざまな C++ ツールセットのバージョンとターゲット オペレーティング システムの C++ MSBuild インポート ファイル (.props ファイル、.targets ファイルなど) へのパスを表します。 これらのフォルダー内のファイルは C++ ビルド インフラストラクチャを表しており、MSBuild を使用して C++ プロジェクトをビルドするために不可欠です。

プロパティ 予約または既知 説明
AndroidTargetsPath 既知 Android ビルド用の C++ MSBuild インポート ファイルへのパス。 C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Microsoft\MDD\Android\V150\
iOSTargetsPath 既知 iOS ビルド用の C++ MSBuild インポート ファイルへのパス。 C:\Program Files\Microsoft Visual Studio\2022\Preview\MSBuild\Microsoft\MDD\iOS\V150\
VCTargetsPath 既知 C++ ビルド システムをサポートする C++ MSBuild ファイルへのパス。 C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Microsoft\VC\v170\
VCTargetsPath10 既知 Visual Studio 2010 ツールセットをサポートする C++ MSBuild ファイルへのパス。 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\
VCTargetsPath11 既知 Visual Studio 2012 (V110) ツールセットの MSBuild インポート ファイルへのパス。 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\
VCTargetsPath12 既知 Visual Studio 2013 (V120) ツールセットの MSBuild インポート ファイルへのパス。 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\
VCTargetsPath14 既知 Visual Studio 2015 (V140) ツールセットの MSBuild インポート ファイルへのパス。 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\

MSBuild の要素と競合する名前

上記に加え、MSBuild 言語の要素に対応する名前を、ユーザー定義のプロパティ、項目、または項目メタデータに使うことはできません。

  • VisualStudioProject
  • Target
  • PropertyGroup
  • Output
  • ItemGroup
  • UsingTask
  • ProjectExtensions
  • OnError
  • ImportGroup
  • Choose
  • When
  • Otherwise

関連項目