如何:將自訂建置工具新增至 MSBuild 專案

自訂建置工具是與特定檔案相關聯的使用者定義命令列工具。

針對特定檔案,請在專案檔中 .vcxproj 指定要執行的命令列、任何其他輸入或輸出檔案,以及要顯示的訊息。 如果 MSBuild 判斷輸出檔案與輸入檔相對過時,則會顯示訊息並執行命令列工具。

指定自訂建置工具和自訂建置步驟

若要指定自訂建置工具何時執行,請在專案檔中使用一或兩個 CustomBuildBeforeTargetsCustomBuildAfterTargets XML 元素。 例如,您可以指定自訂建置工具在 MIDL 編譯器之後和 C/C++ 編譯器之前執行。 CustomBuildBeforeTargets指定要在特定目標執行之前執行工具的專案。 使用 專案 CustomBuildAfterTargets 在特定目標執行之後執行工具。 使用這兩個專案在執行兩個目標之間執行工具。 如果未指定這兩個專案,您的自訂建置工具就會在其預設位置執行,也就是 MIDL 目標之前

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

若要新增自訂建置工具

  1. 將專案群組新增至專案檔,並為每個輸入檔新增專案。 指定命令及其輸入、輸出和訊息作為專案中繼資料,如下所示。 此範例假設 「faq.txt」 檔案存在於與專案相同的目錄中。 自訂建置步驟會將它複製到輸出目錄。

    <ItemGroup>
      <CustomBuild Include="faq.txt">
        <Message>Copying readme...</Message>
        <Command>copy %(Identity) $(OutDir)%(Identity)</Command>
        <Outputs>$(OutDir)%(Identity)</Outputs>
      </CustomBuild>
    </ItemGroup>
    

若要定義在建置中執行自訂建置工具的位置

  1. 將下列屬性群組新增至專案檔。 您必須指定至少一個目標。 如果您只想要在特定目標之前(或之後)執行建置步驟,可以省略其他步驟。 此範例會在編譯之後,但在連結之前執行自訂步驟。

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

另請參閱

逐步解說:使用 MSBuild 建立 C++ 專案
如何:在 MSBuild 專案中使用建置事件
如何:將自訂建置步驟新增至 MSBuild 專案
MSBuild 命令和屬性的通用宏
MSBuild 已知專案中繼資料