Procedimiento para agregar herramientas personalizadas de compilación a proyectos de MSBuildHow to: Add Custom Build Tools to MSBuild Projects

Una herramienta de compilación personalizada es una herramienta de línea de comandos definida por el usuario que está asociada a un archivo determinado.A custom build tool is a user-defined, command-line tool that is associated with a particular file.

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 adicional, y un mensaje para mostrar.For a particular file, specify in the project file (.vcxproj) the command line to execute, any additional input or output files, and a message to display. Si MSBuild determina que los archivos de salida no están actualizados con respecto a los archivos de entrada, muestra el mensaje y ejecuta la herramienta de línea de comandos.If MSBuild determines that your output files are out of date with regard to your input files, it displays the message and executes the command-line tool.

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.To specify when the custom build tool executes, use one or both of the CustomBuildBeforeTargets and CustomBuildAfterTargets XML elements in the project file. 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++.For example, you might specify that your custom build tool run after the MIDL compiler and before the C/C++ compiler. Especifique el elemento CustomBuildBeforeTargets para ejecutar la herramienta antes de que se ejecute un destino determinado, el elemento CustomBuildAfterTargets para ejecutar la herramienta después de un destino determinado, o bien ambos elementos para ejecutar la herramienta entre la ejecución de dos destinos.Specify the CustomBuildBeforeTargets element to execute the tool before a particular target runs; the CustomBuildAfterTargets element to execute the tool after a particular target; or both elements to run the tool between execution of two targets. 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.If neither element is specified, your custom build tool executes at its default location, which is before the MIDL target.

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.Custom build steps and custom build tools share the information specified in the CustomBuildBeforeTargets and CustomBuildAfterTargets XML elements. Especifique esos destinos una vez en el archivo del proyecto.Specify those targets one time in your project file.

Para agregar una herramienta de compilación personalizadaTo add a custom build tool

  1. Agregue un grupo de elementos al archivo de proyecto y agregue un elemento para cada archivo de entrada.Add an item group to the project file and add an item for each input file. Especifique el comando, las entradas adicionales, las salidas y un mensaje como metadatos del elemento, como se muestra aquí.Specify the command, additional inputs, outputs, and a message as item metadata, as shown here. En este ejemplo se supone que existe un archivo "faq.txt" en el mismo directorio que el proyecto.This example assumes that a "faq.txt" file exists in the same directory as your project.

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

Para definir dónde se ejecutarán las herramientas de compilación personalizadas en la compilaciónTo define where in the build the custom build tools will execute

  1. Agregue el grupo de propiedades siguiente al archivo del proyecto.Add the following property group to the project file. Debe especificar al menos uno de los destinos, pero puede omitir el otro si solo le interesa que el paso de compilación se ejecute antes (o después) de un destino determinado.You have to specify at least one of the targets, but you can omit the other if you are only interested in having your build step execute before (or after) a particular target. En este ejemplo se realiza el paso personalizado después de la compilación, pero antes de la vinculación.This example performs the custom step after compiling but before linking.

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

Vea tambiénSee also

Tutorial: Uso de MSBuild para crear un proyecto de C++Walkthrough: Using MSBuild to Create a C++ Project
Cómo: Usar de eventos de compilación en proyectos de MSBuildHow to: Use Build Events in MSBuild Projects
Cómo: Agregar un paso personalizado de compilación a proyectos de MSBuildHow to: Add a Custom Build Step to MSBuild Projects