Compartir a través de


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.

Nota importanteImportante

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.

  1. 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.

  2. 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"/>
    
  3. 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.

  4. Implemente el archivo DLL que contiene la tarea personalizada en el equipo de compilación.

    Nota importanteImportante

    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

  1. InitializeBuildProperties

  2. BeforeEndToEndIteration

  3. BuildNumberOverrideTarget

  4. InitializeEndToEndIteration

  5. BeforeInitializeWorkspace

  6. CoreInitializeWorkspace

  7. AfterinitializeWorkspace

  8. InitializeBuild

  9. BeforeGet

  10. CoreGet

  11. AfterGet

  12. BeforeLabel

  13. CoreLabel

  14. AfterLabel

  15. BeforeClean

  16. CoreCleanCompilationOutput

  17. AfterClean

  18. BeforeCompile

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

  20. BeforeCompileConfiguration

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

  22. BeforeCompileSolution

  23. CoreCompileSolution

  24. AfterCompileSolution

  25. AfterCompileConfiguration

  26. AfterCompile

  27. BeforeGetChangesetsAndUpdateWorkItems

  28. CoreGetChangeSetsAndUpdateWorkItems

  29. AfterGetChangesetsAndUpdateWorkItems

  30. BeforeTest

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

  32. BeforeTestConfiguration

  33. CoreTestConfiguration

  34. AfterTestConfiguration

  35. AfterTest

  36. GenerateDocumentation

  37. BeforeDropBuild

  38. CoreDropBuild

  39. AfterDropBuild

  40. AfterEndToEndIteration

  1. InitializeBuildProperties

  2. BeforeEndToEndIteration

  3. BuildNumberOverrideTarget

  4. InitializeEndToEndIteration

  5. BeforeInitializeWorkspace

  6. CoreInitializeWorkspace

  7. AfterInitializeWorkspace

  8. BeforeClean

  9. CoreClean

  10. AfterClean

  11. InitializeBuild

  12. BeforeGet

  13. CoreGet

  14. AfterGet

  15. BeforeLabel

  16. CoreLabel

  17. AfterLabel

  18. BeforeCompile

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

  20. BeforeCompileConfiguration

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

  22. BeforeCompileSolution

  23. CoreCompileSolution

  24. AfterCompileSolution

  25. AfterCompileConfiguration

  26. AfterCompile

  27. BeforeGetChangesetsAndUpdateWorkItems

  28. CoreGetChangeSetsAndUpdateWorkItems

  29. AfterGetChangesetsAndUpdateWorkItems

  30. BeforeTest

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

  32. BeforeTestConfiguration

  33. CoreTestConfiguration

  34. AfterTestConfiguration

  35. AfterTest

  36. GenerateDocumentation

  37. BeforeDropBuild

  38. CoreDropBuild

  39. AfterDropBuild

  40. AfterEndToEndIteration

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.

  1. SetBuildBreakProperties

  2. BeforeOnBuildBreak

  3. GetChangesetsOnBuildBreak

  4. BeforeDropBuild

  5. CoreDropBuild

  6. AfterDropBuild

  7. BeforeCreateWorkItem

  8. CoreCreateWorkItem

  9. AfterCreateWorkItem

  10. CoreOnBuildBreak

  11. AfterOnBuildBreak

Vea también

Conceptos

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

Propiedades personalizables de Team Foundation Build