Procedimiento para agregar un paso personalizado de compilación a proyectos de MSBuildHow to: Add a Custom Build Step to MSBuild Projects

Un paso de compilación personalizado es un paso definido por el usuario en una compilación.A custom build step is a user-defined step in a build. Un paso de compilación personalizado se comporta como cualquier otro paso de herramienta de comando, como el paso estándar de compilación o vinculación.A custom build step behaves like any other command tool step, such as the standard compile or link tool step.

Especifique un paso de compilación personalizado en el archivo del proyecto (.vcxproj).Specify a custom build step in the project file (.vcxproj). El paso puede especificar una línea de comandos para su ejecución, cualquier archivo de entrada o salida adicional, y un mensaje para mostrar.The step can specify a 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 el comando.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.

Para especificar la ubicación del paso de compilación personalizado en la secuencia de destinos de compilación, use uno de los elementos XML CustomBuildAfterTargets y CustomBuildBeforeTargets (o los dos) del archivo del proyecto.To specify the location of the custom build step in the sequence of build targets, use one or both of the CustomBuildAfterTargets and CustomBuildBeforeTargets XML elements in the project file. Por ejemplo, puede especificar que el paso de compilación personalizado se ejecute después del destino de la herramienta de vínculo y antes del de la herramienta de manifiesto.For example, you could specify that the custom build step runs after the link tool target and before the manifest tool target. El conjunto real de destinos disponibles depende de la compilación concreta.The actual set of available targets depends on your particular build.

Especifique el elemento CustomBuildBeforeTargets para ejecutar el paso de compilación personalizado antes de que se ejecute un destino determinado, el elemento CustomBuildAfterTargets para ejecutar el paso después de que se ejecute un destino determinado, o bien ambos elementos para ejecutar el paso entre dos destinos adyacentes.Specify the CustomBuildBeforeTargets element to execute the custom build step before a particular target runs, the CustomBuildAfterTargets element to execute the step after a particular target runs, or both elements to execute the step between two adjacent targets. Si no se especifica ningún elemento, la herramienta de compilación personalizada se ejecuta en su ubicación predeterminada, que es después del destino Vínculo.If neither element is specified, your custom build tool executes at its default location, which is after the Link 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. Por tanto, especifique esos destinos solo una vez en el archivo del proyecto.Therefore, specify those targets just one time in your project file.

Para definir qué ejecuta el paso de compilación personalizadoTo define what is executed by the custom build step

  1. Agregue un grupo de propiedades al archivo del proyecto.Add a property group to the project file. En este grupo de propiedades, especifique el comando, sus entradas y salidas, y un mensaje, como se muestra en el ejemplo siguiente.In this property group, specify the command, its inputs and outputs, and a message, as shown in the following example. En este ejemplo se crea un archivo .cab a partir del archivo .cpp principal creado en Tutorial: Uso de MSBuild para crear un proyecto de C++.This example creates a .cab file from the main.cpp file you created in Walkthrough: Using MSBuild to Create a C++ Project.

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

Para definir dónde se ejecutará el paso de compilación personalizado en la compilaciónTo define where in the build the custom build step will execute

  1. Agregue el grupo de propiedades siguiente al archivo del proyecto.Add the following property group to the project file. Puede especificar ambos destinos o puede omitir uno si solo quiere que el paso personalizado se ejecute antes o después de un destino determinado.You can specify both targets, or you can omit one if you just want the custom step to execute before or after a particular target. En este ejemplo se indica a MSBuild que ejecute el paso personalizado después del paso de compilación, pero antes del paso de vínculo.This example tells MSBuild to perform the custom step after the compile step but before the link step.

    <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 herramientas personalizadas de compilación a proyectos de MSBuildHow to: Add Custom Build Tools to MSBuild Projects