方法: MSBuild プロジェクトにカスタム ビルド ステップを追加する
カスタム ビルド ステップは、ビルドのユーザー定義の手順です。カスタム ビルド ステップは、標準のコンパイル ツールやリンク ツールなどのその他のコマンド ツールの手順と同様に動作します。
カスタム ビルド ステップは、プロジェクト ファイル (.vcxproj) で指定します。このステップでは、実行するコマンド ライン、追加の入力または出力ファイル、および表示するメッセージを指定できます。MSBuild は、入力ファイルに対して出力ファイルが最新でないと判断すると、メッセージを表示し、コマンドを実行します。
ビルド ターゲットのシーケンス内のカスタム ビルド ステップの場所を指定するには、プロジェクト ファイルで CustomBuildAfterTargets と CustomBuildBeforeTargets という XML 要素のいずれかまたは両方を使用します。たとえば、リンク ツールのターゲットの後、かつマニフェスト ツールのターゲットの前にカスタム ビルド ステップを実行するように指定できます。実際の使用可能なターゲットのセットは、使用する特定のビルドによって異なります。
カスタム ビルド ステップを特定のターゲットを実行する前に実行するには、CustomBuildBeforeTargets 要素を指定し、特定のターゲットを実行した後で実行するには CustomBuildAfterTargets 要素を指定します。また、カスタム ビルド ステップを 2 つの隣接するターゲットの間で実行するには、両方の要素を指定します。どちらの要素も指定しない場合、カスタム ビルド ツールは既定の場所 (Link ターゲットを実行した後) で実行されます。
カスタム ビルド ステップとカスタム ビルド ツールは、CustomBuildBeforeTargets XML 要素と CustomBuildAfterTargets XML 要素で指定された情報を共有します。したがって、プロジェクト ファイルでは、これらのターゲットは 1 回だけ指定します。
カスタム ビルド ステップによって実行される対象を定義するには
プロジェクト ファイルにプロパティ グループを追加します。次の例に示すように、このプロパティ グループでは、コマンド、その入力と出力、およびメッセージを指定します。この例では、「チュートリアル: MSBuild を使用した Visual C++ プロジェクトの作成」で作成した main.cpp ファイルから .cab ファイルが作成されます。
<ItemDefinitionGroup> <CustomBuildStep> <Command>makecab.exe $(ProjectDir)main.cpp $(TargetName).cab</Command> <Outputs>$(TargetName).cab</Outputs> <Inputs>$(TargetFileName)</Inputs> </CustomBuildStep> </ItemDefinitionGroup>
カスタム ビルド ステップを実行するビルド内の場所を定義するには
次のプロパティ グループをプロジェクト ファイルに追加します。両方のターゲットを指定することも、(特定のターゲットの前か後にカスタム ステップを実行する場合は) どちらかを省略することもできます。この例は、コンパイル ステップの後、かつリンク ステップの前にカスタム ステップを実行するように MSBuild に指示します。
<PropertyGroup> <CustomBuildAfterTargets>ClCompile</CustomBuildAfterTargets> <CustomBuildBeforeTargets>Link</CustomBuildBeforeTargets> </PropertyGroup>
参照
処理手順
チュートリアル: MSBuild を使用した Visual C++ プロジェクトの作成