如何:將自訂建置步驟加入至 MSBuild 專案

自訂建置步驟是組建中的使用者定義步驟。 自訂建置步驟的行為就像任何其他 命令工具 步驟,例如標準編譯或連結工具步驟。

在專案檔中指定自訂建置步驟 (.vcxproj)。 此步驟可以指定要執行的命令列、任何其他輸入或輸出檔案,以及要顯示的訊息。 如果 MSBuild 判斷您的輸出檔案與輸入檔案無關,則會顯示訊息並執行命令。

若要指定建置目標序列中的自訂建置步驟位置,請在專案檔中使用一或兩 CustomBuildAfterTargets 個 和 CustomBuildBeforeTargets XML 元素。 例如,您可以指定自訂建置步驟會在連結工具目標之後和資訊清單工具目標之前執行。 實際可用的目標集取決於您的特定組建。

CustomBuildBeforeTargets指定要在特定目標執行之前執行自訂建置步驟的專案、 CustomBuildAfterTargets 在特定目標執行之後執行步驟的專案,或兩個元素執行兩個相鄰目標之間的步驟。 如果未指定這兩個專案,您的自訂建置工具就會在其預設位置執行,也就是連結 目標之後

自訂建置步驟和自訂建置工具會共用 和 CustomBuildAfterTargets XML 元素中指定的 CustomBuildBeforeTargets 資訊。 因此,請在專案檔中只指定這些目標一次。

定義自訂建置步驟所執行的內容

  1. 將屬性群組新增至專案檔。 在此屬性群組中,指定命令、其輸入和輸出,以及訊息,如下列範例所示。 此範例會從您在逐步解說:使用 MSBuild 建立 C++ 專案的 main.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 專案