プロジェクトファイルで使える「MSBuildの予約済および既知のプロパティ」を確認する

プロジェクトファイル内で使える「[MSBuildの予約済および既知のプロパティ](https://msdn.microsoft.com/ja-jp/library/ms164309.aspx "MSBuildの予約済および既知のプロパティ")」をMicrosoft Visual Studio Community 2017で確認しました。確認手順は「[チュートリアル: MSBuildの使用](https://msdn.microsoft.com/ja-jp/library/dd393573.aspx "チュートリアル: MSBuildの使用")」を参考にしました。

# プロジェクトファイルに確認用Elementを追記する

1. Visual Studioで新しいプロジェクトを新規作成します。「[チュートリアル: MSBuildの使用](https://msdn.microsoft.com/ja-jp/library/dd393573.aspx "チュートリアル: MSBuildの使用")」と同じWindowsフォームアプリケーションをBuildAppという名前で新規作成しました。
2. プロジェクトBuildAppをアンロードします。
3. プロジェクトBuildAppを右クリックし「編集 BuildApp.csproj」を選択します。
4. BuildApp.csprojの\</Project\>の直前に\<Target Name="PrintProperties"\>から\</Target\>までを追記します。

```XML
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build"
  xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <!-- 略 -->

  <Target Name="PrintProperties">
    <!-- 予約済 -->
    <Message Text="MSBuildBinPath=&quot;$(MSBuildBinPath)&quot;"/>
    <!-- 既知 -->
    <Message Text="MSBuildExtensionsPath=&quot;$(MSBuildExtensionsPath)&quot;"/>
    <!-- 既知 -->
    <Message Text="MSBuildExtensionsPath32=&quot;$(MSBuildExtensionsPath32)&quot;"/>
    <!-- 既知 -->
    <Message Text="MSBuildExtensionsPath64=&quot;$(MSBuildExtensionsPath64)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildLastTaskResult=&quot;$(MSBuildLastTaskResult)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildNodeCount=&quot;$(MSBuildNodeCount)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildProgramFiles32=&quot;$(MSBuildProgramFiles32)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildProjectDefaultTargets=&quot;$(MSBuildProjectDefaultTargets)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildProjectDirectory=&quot;$(MSBuildProjectDirectory)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildProjectDirectoryNoRoot=&quot;$(MSBuildProjectDirectoryNoRoot)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildProjectExtension=&quot;$(MSBuildProjectExtension)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildProjectFile=&quot;$(MSBuildProjectFile)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildProjectFullPath=&quot;$(MSBuildProjectFullPath)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildProjectName=&quot;$(MSBuildProjectName)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildStartupDirectory=&quot;$(MSBuildStartupDirectory)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildThisFile=&quot;$(MSBuildThisFile)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildThisFileDirectory=&quot;$(MSBuildThisFileDirectory)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildThisFileDirectoryNoRoot=&quot;$(MSBuildThisFileDirectoryNoRoot)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildThisFileExtension=&quot;$(MSBuildThisFileExtension)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildThisFileFullPath=&quot;$(MSBuildThisFileFullPath)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildThisFileName=&quot;$(MSBuildThisFileName)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildToolsPath=&quot;$(MSBuildToolsPath)&quot;"/>
    <!-- 予約済 -->
    <Message Text="MSBuildToolsVersion=&quot;$(MSBuildToolsVersion)&quot;"/>
  </Target>
</Project>
```

# MSBuildの予約済および既知のプロパティを表示する

1. スタートメニューから「VS 2017 用 XXXXX Native Tools コマンド プロンプト」を開きます。
2. プロジェクトファイルのあるディレクトリーに移動します。
3. コマンド「`msbuild BuildApp.csproj /t:PrintProperties`」を実行します。

出力例

```PlainText
D:\src\BuildApp\BuildApp>msbuild BuildApp.csproj /t:PrintProperties
.NET Framework 向け Microsoft (R) Build Engine バージョン 15.7.180.61344
Copyright (C) Microsoft Corporation.All rights reserved.

30/08/05 16:39:10 にビルドを開始しました。
ノード 1 上のプロジェクト "D:\src\BuildApp\BuildApp\BuildApp.csproj" (PrintProperties ターゲット)。
PrintProperties:
  MSBuildBinPath="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\bin"
  MSBuildExtensionsPath="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild"
  MSBuildExtensionsPath32="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild"
  MSBuildExtensionsPath64="C:\Program Files\MSBuild"
  MSBuildLastTaskResult="true"
  MSBuildNodeCount="1"
  MSBuildProgramFiles32="C:\Program Files (x86)"
  MSBuildProjectDefaultTargets="Build"
  MSBuildProjectDirectory="D:\src\BuildApp\BuildApp"
  MSBuildProjectDirectoryNoRoot="src\BuildApp\BuildApp"
  MSBuildProjectExtension=".csproj"
  MSBuildProjectFile="BuildApp.csproj"
  MSBuildProjectFullPath="D:\src\BuildApp\BuildApp\BuildApp.csproj"
  MSBuildProjectName="BuildApp"
  MSBuildStartupDirectory="D:\src\BuildApp\BuildApp"
  MSBuildThisFile="BuildApp.csproj"
  MSBuildThisFileDirectory="D:\src\BuildApp\BuildApp\"
  MSBuildThisFileDirectoryNoRoot="src\BuildApp\BuildApp\"
  MSBuildThisFileExtension=".csproj"
  MSBuildThisFileFullPath="D:\src\BuildApp\BuildApp\BuildApp.csproj"
  MSBuildThisFileName="BuildApp"
  MSBuildToolsPath="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\bin"
  MSBuildToolsVersion="15.0"
プロジェクト "D:\src\BuildApp\BuildApp\BuildApp.csproj" (PrintProperties ターゲット) のビルドが完了しました。


ビルドに成功しました。
    0 個の警告
    0 エラー

経過時間 00:00:00.68
```