Destinos personalizables de Team Foundation Build
Los destinos de MSBuild definen cómo se genera un proyecto de MSBuild. El archivo Microsoft.TeamFoundation.Build.targets define la jerarquía de destino y un conjunto de tareas y destinos predefinidos de MSBuild para Team Foundation Build que se utilizan para todos los tipos de Team Foundation Build. Las definiciones de compilación incluyen un archivo de proyecto denominado TfsBuild.proj. El archivo de proyecto puede estar asociado a una única definición de compilación o a varias definiciones de compilación. TfsBuild.proj importa el archivo Microsoft.TeamFoundation.Build.targets y proporciona los valores para las distintas propiedades y grupos de elementos. Puede personalizar el archivo TfsBuild.proj para invalidar algunos de los destinos de punto de extensión de la jerarquía. El archivo de destinos se encuentra en <raíz>:\Archivos de programa\MSBuild\Microsoft\VisualStudio\TeamBuild en el agente de compilación.
Importante |
---|
No modifique el archivo Microsoft.TeamFoundation.Build.targets. |
Para obtener más información sobre los destinos de MSBuild, vea Objetivos de MSBuild.
Destinos que se pueden personalizar con tareas
Las tareas están contenidas en destinos. Las tareas proporcionan el código que se ejecuta durante el proceso de compilación. La tabla siguiente muestra todos los destinos de Team Foundation Build que se definen para la extensibilidad. Inserte las tareas en uno de estos destinos en función del momento, durante el proceso de compilación, en el que debe ejecutar las tareas personalizadas.
Nota
No es recomendable que invalide otros destinos.
Nombre de destino |
Descripción |
---|---|
BeforeEndToEndIteration |
Inserte la tarea en este destino para ejecutar las tareas personalizadas al principio del proceso de compilación. |
AfterEndToEndIteration |
Inserte la tarea en este destino para ejecutar las tareas personalizadas al final del proceso de compilación. |
BeforeInitializeWorkspace |
Inserte la tarea en este destino para ejecutar las tareas personalizadas antes de que se inicialice el área de trabajo. |
AfterInitializeWorkspace |
Inserte la tarea en este destino para ejecutar las tareas personalizadas después de que se inicialice el área de trabajo. |
BuildNumberOverrideTarget |
Inserte la tarea en este destino para personalizar las propiedades de número de compilación o ubicación de destino. La tarea que escribe debe crear una propiedad de salida llamada BuildNumber. |
BeforeClean |
Se llama antes de intentar la limpieza. Inserte la tarea en este destino para ejecutar una tarea personalizada antes de la limpieza. |
AfterClean |
Se llama después de finalizar la limpieza. Inserte la tarea en este destino para ejecutar las tareas personalizadas después de la limpieza. |
BeforeGet |
Se llama antes de recuperar los códigos fuente del control de código fuente. Inserte la tarea en este destino para ejecutar las tareas personalizadas antes de que se recuperen los códigos fuente. |
AfterGet |
Se llama después de recuperar los códigos fuente. Inserte la tarea en este destino para ejecutar las tareas personalizadas después de que se recuperen los códigos fuente. |
BeforeLabel |
Se llama antes de etiquetar los códigos fuente. Inserte la tarea en este destino para ejecutar las tareas personalizadas antes que el destino Label. |
AfterLabel |
Se invoca una vez completado el etiquetado. Inserte la tarea en este destino para ejecutar las tareas personalizadas después que el destino Label. |
BeforeCompile |
Se llama antes de iniciar la compilación. Inserte la tarea en este destino para ejecutar las tareas personalizadas antes de que se compilen los archivos de código. |
BeforeCompileConfiguration |
Inserte la tarea en este destino para ejecutar las tareas personalizadas antes de la compilación de una determinada configuración. |
BeforeCompileSolution |
Inserte la tarea en este destino para ejecutar las tareas personalizadas antes de la compilación de una determinada solución. |
AfterCompileSolution |
Inserte la tarea en este destino para ejecutar las tareas personalizadas después de la compilación de una determinada solución. |
AfterCompileConfiguration |
Inserte la tarea en este destino para ejecutar las tareas personalizadas después de la compilación de una determinada configuración. |
AfterCompile |
Se llama después de finalizar la compilación. Inserte la tarea en este destino para ejecutar las tareas personalizadas después de que se compilen los archivos de código. |
BeforeGetChangesetsAndUpdateWorkItems |
Inserte la tarea en este destino para ejecutar las tareas personalizadas antes de asociar conjuntos de cambios y actualizar elementos de trabajo. |
AfterGetChangesetsAndUpdateWorkItems |
Inserte la tarea en este destino para ejecutar las tareas personalizadas después de asociar conjuntos de cambios y actualizar elementos de trabajo. |
BeforeTest |
Se llama antes de ejecutar las pruebas. Inserte la tarea en este destino para ejecutar las tareas personalizadas antes que el destino Test. |
BeforeTestConfiguration |
Inserte la tarea en este destino para ejecutar las tareas personalizadas antes de probar una determinada configuración. |
AfterTestConfiguration |
Inserte la tarea en este destino para ejecutar las tareas personalizadas después de probar una determinada configuración. |
AfterTest |
Se invoca después de completar las pruebas. Inserte la tarea en este destino para ejecutar las tareas personalizadas después que el destino Test. |
BeforeDropBuild |
Se llama antes de guardar los archivos binarios generados, los archivos de registro de la generación y los resultados de las pruebas en el directorio de almacenamiento generado en el servidor de versiones. Inserte la tarea en este destino para ejecutar las tareas personalizadas antes de que se guarden los archivos generados en el directorio de destino. |
AfterDropBuild |
Se llama después de colocar los archivos binarios compilados y los resultados de las pruebas en el servidor de versiones. Inserte la tarea en este destino para ejecutar las tareas personalizadas después de que se guarden los archivos generados en el directorio de destino. |
BeforeCreateWorkItem |
Inserte la tarea en este destino para ejecutar las tareas personalizadas antes de que se creen los elementos de trabajo. |
AfterCreateWorkItem |
Inserte la tarea en este destino para ejecutar las tareas personalizadas después de que se creen los elementos de trabajo. |
BeforeOnBuildBreak |
Se invoca antes de crear un elemento de trabajo como consecuencia de una interrupción de compilación. Inserte la tarea en este destino para ejecutar las tareas personalizadas antes que el destino BuildBreak. |
AfterOnBuildBreak |
Se llama después de crear un elemento de trabajo como resultado de una interrupción de compilación. Inserte la tarea en este destino para ejecutar las tareas personalizadas después que el destino BuildBreak. |
GenerateDocumentation |
Éste es un destino vacío. Inserte la tarea en este destino para generar documentación durante el proceso de compilación. |
Invalidar destinos para ejecutar tareas personalizadas
El código de tarea que escriba debe estar emparejado con un destino. Para obtener más información, vea Escribir tareas. Para escribir una tarea personalizada, debe seguir estos pasos.
Escriba el código de tarea y asegúrese de que los binarios generados estén disponibles en el equipo de compilación, bien proporcionando la ruta de acceso de control de código fuente en el archivo TfsBuild.proj o haciendo que los binarios estén disponibles en el propio equipo de compilación.
Nota
Una buena práctica de codificación es comprobar el código de la tarea en el control de código fuente, pero no es absolutamente necesario.
Registre la tarea personalizada en el archivo TfsBuild.proj declarándola mediante el elemento UsingTask de MSBuild.
Para obtener más información, vea Elemento UsingTask (MSBuild).
<UsingTask TaskName="MyTasks.SimpleTask" AssemblyName="MyAssembly.Build.Tasks"/>
Ejecute la tarea insertándola en el destino deseado en el archivo TfsBuild.proj.
<Target Name="BeforeGet"> <SimpleTask /> </Target>
Nota
La acción de agregar esta etiqueta produce advertencias del esquema XML. Puede omitir sin ningún riesgo esas advertencias.
Implemente el archivo DLL que contiene la tarea personalizada en el equipo de compilación.
Importante El cambio afecta a todas las definiciones de compilación asociadas al archivo TfsBuild.proj que se personaliza.
Orden de ejecución de destinos
El orden de ejecución de los destinos depende del valor de la propiedad CleanCompilationOutputOnly. Si CleanCompilationOutputOnly es true, los destinos limpios (BeforeClean, CoreClean y AfterClean) se ejecutan después de los destinos get y label (BeforeGet, CoreGet, AfterGet BeforeLabel, CoreLabel y AfterLabel). Si la propiedad CleanCompilationOutputOnly es false, los destinos limpios se ejecutan antes de los destino get y label. Si CleanCompilationOutputOnly es true, sólo se eliminan los ensamblados intermedios del directorio de código fuente durante la ejecución del destino CoreClean. Si esta propiedad está establecida en false, todo el directorio de origen se eliminará durante la ejecución del destino CoreClean.
En la tabla siguiente se muestra la lista ordenada de los destinos que se ejecutan en función de si CleanCompilationOutputOnly es true o false. Los destinos que puede reemplazar se muestran en negrita.
CleanCompilationOutputOnly = true |
CleanCompilationOutputOnly = false |
---|---|
|
|
A continuación, se muestra la lista de los destinos que se ejecutan cuando se produce un error durante la ejecución del destino CoreCompile. Los destinos que puede reemplazar se muestran en negrita.
SetBuildBreakProperties
BeforeOnBuildBreak
GetChangesetsOnBuildBreak
BeforeDropBuild
CoreDropBuild
AfterDropBuild
BeforeCreateWorkItem
CoreCreateWorkItem
AfterCreateWorkItem
CoreOnBuildBreak
AfterOnBuildBreak
Vea también
Conceptos
Introducción a los archivos de configuración de Team Foundation Build