Procedimiento Agregar herramientas personalizadas de compilación a proyectos de MSBuild

Una herramienta de compilación personalizada es una herramienta de línea de comandos definida por el usuario y que está asociada a un archivo determinado.

Para un archivo en concreto, especifique en el archivo de proyecto (.vcxproj) la línea de comandos que se va a ejecutar, cualquier archivo de entrada o salida y un mensaje para mostrar. Si MSBuild determina que los archivos de salida no están actualizados como los archivos de entrada, muestra el mensaje y ejecuta la herramienta de línea de comandos.

Especificar herramientas de compilación y pasos de compilación personalizados

Para especificar el momento en el que se ejecuta la herramienta de compilación personalizada, use uno de los elementos XML CustomBuildBeforeTargets y CustomBuildAfterTargets (o ambos) en el archivo de proyecto. Por ejemplo, puede especificar que la herramienta de compilación personalizada se ejecute después del compilador de MIDL y antes del compilador de C/C++. Especifique el elemento CustomBuildBeforeTargets para ejecutar la herramienta antes de que se ejecute un destino determinado. Use el elemento CustomBuildAfterTargets para ejecutar la herramienta después de que se ejecute un destino determinado. Use ambos elementos para ejecutar la herramienta entre la ejecución de dos destinos. Si no se especifica ningún elemento, la herramienta de compilación personalizada se ejecuta en su ubicación predeterminada, que es antes del destino MIDL.

Los pasos de compilación personalizados y las herramientas de compilación personalizadas comparten la información especificada en los elementos XML CustomBuildBeforeTargets y CustomBuildAfterTargets. Especifique esos destinos una vez en el archivo del proyecto.

Para agregar una herramienta de compilación personalizada

  1. Agregue un grupo de elementos al archivo de proyecto y agregue un elemento para cada archivo de entrada. Especifique el comando y sus entradas, salidas y un mensaje como metadatos del elemento, como se muestra aquí. En este ejemplo se supone que existe un archivo "faq.txt" en el mismo directorio que el proyecto. El paso de compilación personalizado lo copia en el directorio de salida.

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

Para definir en qué parte de la compilación se ejecutan las herramientas de compilación personalizadas

  1. Agregue el grupo de propiedades siguiente al archivo del proyecto. Debe especificar al menos uno de los destinos. Puede omitir el otro si solo le interesa que el paso de compilación se ejecute antes (o después) de un destino determinado. En este ejemplo se realiza el paso personalizado después de la compilación, pero antes de la vinculación.

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

Consulte también

Tutorial: Uso de MSBuild para crear un proyecto de C++
Uso de eventos de compilación en proyectos de MSBuild
Cómo: Agregar un paso de compilación personalizado a proyectos de MSBuild
Macros comunes para propiedades y comandos de MSBuild
Metadatos de los elementos conocidos de MSBuild