Como adicionar uma etapa de build personalizada a projetos MSBuild

Uma etapa de build personalizada é uma etapa definida pelo usuário em um build. Uma etapa de build personalizada se comporta como qualquer outra etapa de ferramenta de comando, como a etapa de ferramenta de vinculação ou de compilação padrão.

Especifique uma etapa de build personalizada no arquivo de projeto (.vcxproj). A etapa pode especificar uma linha de comando a ser executada, os arquivos de entrada ou saída adicionais e uma mensagem a ser exibida. Se o MSBuild determinar que os arquivos de saída estão desatualizados em relação aos arquivos de entrada, ele exibirá a mensagem e executará o comando.

Para especificar o local da etapa de build personalizada na sequência de destinos de build, use um ou ambos os elementos XML CustomBuildAfterTargets e CustomBuildBeforeTargets no arquivo de projeto. Por exemplo, é possível especificar que a etapa de build personalizada execute após o destino da ferramenta de vinculação e antes do destino da ferramenta de manifesto. O conjunto real de destinos disponíveis depende do build específico.

Especifique o elemento CustomBuildBeforeTargets para executar a etapa de build personalizada antes da execução de um determinado destino, o elemento CustomBuildAfterTargets para executar a etapa após a execução de um determinado destino ou ambos os elementos para executar a etapa entre dois destinos adjacentes. Se nenhum elemento for especificado, a ferramenta de build personalizada executará no local padrão, que é após o destino do Link.

As etapas de build personalizadas e as ferramentas de build personalizadas compartilham as informações especificadas nos elementos XML CustomBuildBeforeTargets e CustomBuildAfterTargets. Portanto, especifique esses destinos apenas uma vez no arquivo de projeto.

Para definir o que é executado pela etapa de build personalizada

  1. Adicione um grupo de propriedades ao arquivo de projeto. Nesse grupo de propriedades, especifique o comando, as entradas e saídas e uma mensagem, conforme mostrado no exemplo a seguir. Este exemplo cria um arquivo .cab do arquivo main.cpp que você criou no Passo a passo: Usar o MSBuild para criar um projeto C++.

    <ItemDefinitionGroup>
      <CustomBuildStep>
        <Command>makecab.exe $(ProjectDir)main.cpp $(TargetName).cab</Command>
        <Outputs>$(TargetName).cab</Outputs>
        <Inputs>$(ProjectDir)main.cpp</Inputs>
      </CustomBuildStep>
    </ItemDefinitionGroup>
    

Para definir em que local no build a etapa de build personalizada executará

  1. Adicione o grupo de propriedades a seguir ao arquivo de projeto. É possível especificar os dois destinos ou omitir um se quiser apenas que a etapa personalizada execute antes ou após um determinado destino. Este exemplo informa ao MSBuild para executar a etapa personalizada após a etapa de build, mas antes da etapa de vinculação.

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

Confira também

Passo a passo: Usar o MSBuild para criar um projeto do C++
Como usar eventos de build em projetos do MSBuild
Como adicionar ferramentas de build personalizadas a projetos MSBuild