Partilhar via


Como: Adicionar ferramentas de compilação personalizadas para projetos MSBuild

Uma ferramenta de compilação personalizada é uma ferramenta de linha de comando definida pelo usuário que está associada a um arquivo específico.

Para um arquivo específico, especifique 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 arquivos de entrada, ele exibirá a mensagem e executará a ferramenta de linha de comando.

Especificar ferramentas de compilação personalizadas e etapas de compilação personalizadas

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

Etapas de compilação personalizadas e ferramentas de compilação personalizadas compartilham as informações especificadas nos elementos XML CustomBuildBeforeTargets e CustomBuildAfterTargets. Especifique esses destinos uma vez no arquivo de projeto.

Para adicionar uma ferramenta de compilação 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 do item, conforme mostrado aqui. Este exemplo pressupõe que um arquivo "faq.txt" existe no mesmo diretório que seu projeto. A etapa de compilação 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 na compilação as ferramentas de compilação personalizadas são executadas

  1. Adicione o seguinte grupo de propriedades ao arquivo de projeto. Tem de especificar pelo menos um dos destinos. Você pode omitir o outro se estiver interessado apenas em que sua etapa de compilação seja executada antes (ou depois) de um destino específico. Este exemplo executa a etapa personalizada após a compilação, mas antes da vinculação.

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

Ver também

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 do MSBuild
Metadados de itens bem conhecidos do MSBuild