Como: adicionar ferramentas personalizadas de build a projetos do MSBuild

Uma ferramenta de build personalizada é uma ferramenta de linha de comando definida pelo usuário associada a um arquivo específico.

Para um arquivo específico, defina no arquivo de projeto (.vcxproj) a linha de comando a ser executada, quaisquer outros arquivos de entrada ou saída e uma mensagem a ser exibida. Se o MSBuild determinar que os arquivos de saída estão desatualizados em relação aos seus arquivos de entrada, ele exibirá a mensagem e executará a ferramenta de linha de comando.

Especificar ferramentas de build personalizadas e etapas de build personalizadas

Para especificar quando a ferramenta de build personalizada for executada, use um ou ambos os elementos XML CustomBuildBeforeTargets e CustomBuildAfterTargets no arquivo de projeto. Por exemplo, você pode especificar que sua ferramenta de build personalizada seja executada após o compilador MIDL e antes do compilador C/C++. Especifique o elemento CustomBuildBeforeTargets que executará a ferramenta antes que um destino específico seja executado. Use o elemento CustomBuildAfterTargets que executará a ferramenta depois que um destino específico for executado. Use os dois elementos para executar a ferramenta entre a execução de dois destinos. Se nenhum dos elementos for especificado, sua ferramenta de build personalizada será executada em seu local padrão, que é antes do destino MIDL.

As etapas de build personalizadas e as ferramentas de build personalizadas compartilham as informações especificadas nos elementos XML CustomBuildBeforeTargets e CustomBuildAfterTargets. Especifique esses destinos uma vez em seu arquivo de projeto.

Para adicionar uma etapa de build personalizada

  1. Adicione um grupo de itens ao arquivo de projeto e adicione um item para cada arquivo de entrada. Especifique o comando e suas entradas, saídas e uma mensagem como metadados de item, conforme mostrado aqui. Este exemplo pressupõe que um arquivo "faq.txt" existe no mesmo diretório que seu projeto. A etapa de build personalizada copia-o para o diretório de saída.

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

Para definir onde as ferramentas de build personalizadas são executadas na compilação

  1. Adicione o grupo de propriedades a seguir ao arquivo de projeto. Especifique pelo menos um dos destinos. Você pode omitir o outro se estiver interessado apenas em executar a etapa de build antes (ou depois) de um destino específico. Este exemplo executa a etapa personalizada após a compilação, mas antes de vincular.

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

Confira também

Demonstra Passo a passo: Usando o MSBuild para criar um projeto C++
Como: Usar eventos de compilação em projetos do MSBuild
Como: Adicionar uma etapa de compilação personalizada para projetos do MSBuild
Macros comuns para comandos e propriedades de MSBuild
Metadados de itens conhecidos do MSBuild