如何:將自訂建置工具新增至 MSBuild 專案
自訂建置工具是與特定檔案相關聯的使用者定義命令列工具。
針對特定檔案,請在專案檔中 .vcxproj
指定要執行的命令列、任何其他輸入或輸出檔案,以及要顯示的訊息。 如果 MSBuild 判斷輸出檔案與輸入檔相對過時,則會顯示訊息並執行命令列工具。
指定自訂建置工具和自訂建置步驟
若要指定自訂建置工具何時執行,請在專案檔中使用一或兩個 CustomBuildBeforeTargets
和 CustomBuildAfterTargets
XML 元素。 例如,您可以指定自訂建置工具在 MIDL 編譯器之後和 C/C++ 編譯器之前執行。 CustomBuildBeforeTargets
指定要在特定目標執行之前執行工具的專案。 使用 專案 CustomBuildAfterTargets
在特定目標執行之後執行工具。 使用這兩個專案在執行兩個目標之間執行工具。 如果未指定這兩個專案,您的自訂建置工具就會在其預設位置執行,也就是 MIDL 目標之前 。
自訂建置步驟和自訂建置工具會共用 和 CustomBuildAfterTargets
XML 元素中指定的 CustomBuildBeforeTargets
資訊。 在專案檔中指定這些目標一次。
若要新增自訂建置工具
將專案群組新增至專案檔,並為每個輸入檔新增專案。 指定命令及其輸入、輸出和訊息作為專案中繼資料,如下所示。 此範例假設 「faq.txt」 檔案存在於與專案相同的目錄中。 自訂建置步驟會將它複製到輸出目錄。
<ItemGroup> <CustomBuild Include="faq.txt"> <Message>Copying readme...</Message> <Command>copy %(Identity) $(OutDir)%(Identity)</Command> <Outputs>$(OutDir)%(Identity)</Outputs> </CustomBuild> </ItemGroup>
若要定義在建置中執行自訂建置工具的位置
將下列屬性群組新增至專案檔。 您必須指定至少一個目標。 如果您只想要在特定目標之前(或之後)執行建置步驟,可以省略其他步驟。 此範例會在編譯之後,但在連結之前執行自訂步驟。
<PropertyGroup> <CustomBuildAfterTargets>ClCompile</CustomBuildAfterTargets> <CustomBuildBeforeTargets>Link</CustomBuildBeforeTargets> </PropertyGroup>
另請參閱
逐步解說:使用 MSBuild 建立 C++ 專案
如何:在 MSBuild 專案中使用建置事件
如何:將自訂建置步驟新增至 MSBuild 專案
MSBuild 命令和屬性的通用宏
MSBuild 已知專案中繼資料