次の方法で共有


方法: 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++ プロジェクトの作成

方法: MSBuild プロジェクトでビルド イベントを使用する

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