方法: MSBuild プロジェクトにカスタム ビルド ステップを追加する

カスタム ビルド ステップは、ビルド内のユーザー定義のステップです。 カスタム ビルド ステップは、標準のコンパイルやリンク ツールのステップなど、他の "コマンド ツール" のステップと同様に動作します。

カスタム ビルド ステップはプロジェクト ファイル (.vcxproj) 内に指定します。 ステップでは、実行するコマンド ライン、追加の入力または出力ファイル、および表示するメッセージを指定できます。 MSBuild で出力ファイルが入力ファイルに関して最新ではないと判断された場合は、メッセージが表示され、コマンドが実行されます。

ビルド ターゲットのシーケンスにおけるカスタム ビルド ステップの場所を指定するには、プロジェクト ファイル内で CustomBuildAfterTargets および CustomBuildBeforeTargets XML 要素のいずれかまたは両方を使用します。 たとえば、カスタム ビルド ステップをリンク ツール ターゲットの後、マニフェスト ツール ターゲットの前に実行するように指定できます。 使用可能なターゲットの実際のセットは、特定のビルドによって異なります。

特定のターゲットの実行前にカスタム ビルド ステップを実行するには CustomBuildBeforeTargets 要素を、特定のターゲットを実行した後にステップを実行するには CustomBuildAfterTargets 要素を、または 2 つの隣接するターゲットの間にステップを実行するには両方の要素を指定します。 どちらの要素も指定されていない場合、カスタム ビルド ツールは既定の場所で、つまりリンクターゲットの後に実行されます。

カスタム ビルド ステップとカスタム ビルド ツールで、CustomBuildBeforeTargets および CustomBuildAfterTargets XML 要素で指定された情報が共有されます。 したがって、これらのターゲットはプロジェクト ファイル内で 1 回だけ指定してください。

カスタム ビルド ステップによって実行される内容を定義するには

  1. プロパティ グループをプロジェクト ファイルに追加します。 このプロパティ グループで、次の例に示すように、コマンド、その入力と出力、およびメッセージを指定します。 この例では、「チュートリアル: MSBuild を使用して C++ プロジェクトを作成する」で作成したメイン.cpp ファイルから .cab ファイルを作成します。

    <ItemDefinitionGroup>
      <CustomBuildStep>
        <Command>makecab.exe $(ProjectDir)main.cpp $(TargetName).cab</Command>
        <Outputs>$(TargetName).cab</Outputs>
        <Inputs>$(ProjectDir)main.cpp</Inputs>
      </CustomBuildStep>
    </ItemDefinitionGroup>
    

ビルド内でカスタム ビルド ステップが実行される場所を定義するには

  1. プロジェクト ファイルに次のプロパティ グループを追加します。 両方のターゲットを指定することができます。また、特定のターゲットの前または後にだけカスタム ステップを実行する場合は一方を省略することもできます。 この例では、コンパイル ステップの後、リンク ステップの前にカスタム ステップを実行するように、MSBuild に指示します。

    <PropertyGroup>
      <CustomBuildAfterTargets>ClCompile</CustomBuildAfterTargets>
      <CustomBuildBeforeTargets>Link</CustomBuildBeforeTargets>
    </PropertyGroup>
    

関連項目

チュートリアル: MSBuild を使用して C++ プロジェクトを作成する
方法: MSBuild プロジェクトでビルド イベントを使用する
方法: MSBuild プロジェクトにカスタム ビルド ツールを追加する