Compartir a través de


Destinos personalizables de Team Foundation Build

Actualización: noviembre 2007

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.

Nota 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 llama 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. Para obtener un ejemplo, vea Tutorial: Configurar Team Build para generar un proyecto de instalación de Visual Studio.

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 llama 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 almacenar los archivos binarios generados, los archivos de registro de la generación 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 llama antes de crear un elemento de trabajo resultante 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 automáticamente documentación durante el proceso de compilación.

Invalidar destinos para ejecutar tareas personalizadas

El código de tarea que escriba debe estar asociado con un destino y los binarios generados deben estar 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. Debe registrar también 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). Por último, implemente el archivo DLL que contiene la tarea personalizada en el equipo de compilación.

Nota importante:

El cambio afecta a todas las definiciones de compilación asociadas al archivo TfsBuild.proj que personaliza.

Para obtener un ejemplo de una implementación de principio a fin de una tarea personalizada, vea Tutorial: Personalizar Team Foundation Build con una tarea personalizada.

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, AfterGetBeforeLabel, 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. Se indican los destinos que puede invalidar.

CleanCompilationOutputOnly = true

CleanCompilationOutputOnly = false

  1. InitializeBuildProperties

  2. BeforeEndToEndIteration (se puede invalidar)

  3. BuildNumberOverrideTarget (se puede invalidar)

  4. InitializeEndToEndIteration

  5. BeforeInitializeWorkspace (se puede invalidar)

  6. CoreInitializeWorkspace

  7. AfterinitializeWorkspace (se puede invalidar)

  8. InitializeBuild

  9. BeforeGet (se puede invalidar)

  10. CoreGet

  11. AfterGet (se puede invalidar)

  12. BeforeLabel (se puede invalidar)

  13. CoreLabel

  14. AfterLabel (se puede invalidar)

  15. BeforeClean (se puede invalidar)

  16. CoreCleanCompilationOutput

  17. AfterClean (se puede invalidar)

  18. BeforeCompile (se puede invalidar)

  19. CoreCompile (para cada combinación de plataforma y configuración)

  20. BeforeCompileConfiguration (se puede invalidar)

  21. CoreCompileConfiguration (para cada solución que se va a generar)

  22. BeforeCompileSolution (se puede invalidar)

  23. CoreCompileSolution

  24. AfterCompileSolution (se puede invalidar)

  25. AfterCompileConfiguration (se puede invalidar)

  26. AfterCompile (se puede invalidar)

  27. BeforeGetChangesetsAndUpdateWorkItems (se puede invalidar)

  28. CoreGetChangeSetsAndUpdateWorkItems

  29. AfterGetChangesetsAndUpdateWorkItems (se puede invalidar)

  30. BeforeTest (se puede invalidar)

  31. CoreTest (para cada combinación de plataforma y configuración)

  32. BeforeTestConfiguration (se puede invalidar)

  33. CoreTestConfiguration

  34. AfterTestConfiguration (se puede invalidar)

  35. AfterTest (se puede invalidar)

  36. GenerateDocumentation (se puede invalidar)

  37. PackageBinaries (se puede invalidar)

  38. BeforeDropBuild (se puede invalidar)

  39. CoreDropBuild

  40. AfterDropBuild (se puede invalidar)

  41. AfterEndToEndIteration (se puede invalidar)

  1. InitializeBuildProperties

  2. BeforeEndToEndIteration (se puede invalidar)

  3. BuildNumberOverrideTarget (se puede invalidar)

  4. InitializeEndToEndIteration

  5. BeforeInitializeWorkspace (se puede invalidar)

  6. CoreInitializeWorkspace

  7. AfterInitializeWorkspace (se puede invalidar)

  8. BeforeClean (se puede invalidar)

  9. CoreClean

  10. AfterClean (se puede invalidar)

  11. InitializeBuild

  12. BeforeGet (se puede invalidar)

  13. CoreGet

  14. AfterGet (se puede invalidar)

  15. BeforeLabel (se puede invalidar)

  16. CoreLabel

  17. AfterLabel (se puede invalidar)

  18. BeforeCompile (se puede invalidar)

  19. CoreCompile (para cada combinación de plataforma y configuración)

  20. BeforeCompileConfiguration (se puede invalidar)

  21. CoreCompileConfiguration (para cada solución que se va a generar)

  22. BeforeCompileSolution (se puede invalidar)

  23. CoreCompileSolution

  24. AfterCompileSolution (se puede invalidar)

  25. AfterCompileConfiguration (se puede invalidar)

  26. AfterCompile (se puede invalidar)

  27. BeforeGetChangesetsAndUpdateWorkItems (se puede invalidar)

  28. CoreGetChangeSetsAndUpdateWorkItems

  29. AfterGetChangesetsAndUpdateWorkItems (se puede invalidar)

  30. BeforeTest (se puede invalidar)

  31. CoreTest (para cada combinación de plataforma y configuración)

  32. BeforeTestConfiguration (se puede invalidar)

  33. CoreTestConfiguration

  34. AfterTestConfiguration (se puede invalidar)

  35. AfterTest (se puede invalidar)

  36. GenerateDocumentation (se puede invalidar)

  37. PackageBinaries (se puede invalidar)

  38. BeforeDropBuild (se puede invalidar)

  39. CoreDropBuild

  40. AfterDropBuild (se puede invalidar)

  41. AfterEndToEndIteration (se puede invalidar)

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. Se indican los destinos que puede invalidar.

  1. SetBuildBreakProperties

  2. BeforeOnBuildBreak (se puede invalidar)

  3. GetChangesetsOnBuildBreak

  4. BeforeDropBuild (se puede invalidar)

  5. CoreDropBuild

  6. AfterDropBuild (se puede invalidar)

  7. BeforeCreateWorkItem (se puede invalidar)

  8. CoreCreateWorkItem

  9. AfterCreateWorkItem (se puede invalidar)

  10. CoreOnBuildBreak

  11. AfterOnBuildBreak (se puede invalidar)

Vea también

Tareas

Cómo: Escribir una tarea

Conceptos

Introducción a los archivos de configuración de Team Foundation Build

Propiedades personalizables de Team Foundation Build

Tareas de Team Foundation Build