Cibles Team Foundation Build personnalisables

Mise à jour : novembre 2007

Les cibles MSBuild définissent la manière dont un projet MSBuild est généré. Le fichier Microsoft.TeamFoundation.Build.targets définit la hiérarchie cible et un ensemble de tâches et de cibles MSBuild prédéfinies pour Team Foundation Build et utilisées pour tous les types Team Foundation Build. Les définitions de build incluent un fichier projet nommé TFSBuild.proj. Il peut être associé à une ou plusieurs définitions de build. TfsBuild.proj importe le fichier Microsoft.TeamFoundation.Build.targets et fournit les valeurs pour différentes propriétés et groupes d'éléments. Vous pouvez personnaliser le fichier TfsBuild.proj pour substituer certaines cibles de point d'extension dans la hiérarchie. Le fichier cible se trouve dans <racine>: \\Program Files\MSBuild\Microsoft\VisualStudio\TeamBuild dans l'agent de build.

Remarque importante :

Ne modifiez pas le fichier Microsoft.TeamFoundation.Build.targets.

Pour plus d'informations sur les cibles MSBuild, consultez Cibles de MSBuild.

Cibles qui peuvent être personnalisées avec des tâches

Les tâches sont contenues dans les cibles. Les tâches fournissent le code exécuté pendant le processus de génération. Le tableau suivant répertorie toutes les cibles Team Foundation Build qui sont définies pour l'extensibilité. Insérez vos tâches dans l'une de ces cibles selon le moment où vous devez exécuter vos tâches personnalisées durant le processus de génération.

Remarque :

Nous vous déconseillons de substituer d'autres cibles.

Nom de la cible

Description

BeforeEndToEndIteration

Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées au tout début du processus de génération.

AfterEndToEndIteration

Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées à la fin du processus de génération.

BeforeInitializeWorkspace

Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées avant l'initialisation de l'espace de travail.

AfterInitializeWorkspace

Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées après l'initialisation de l'espace de travail.

BuildNumberOverrideTarget

Insérez votre tâche dans cette cible pour personnaliser les propriétés de numéro de build ou d'emplacement cible. La tâche que vous écrivez doit créer une propriété de sortie appelée BuildNumber.

BeforeClean

Appelé avant une tentative de nettoyage. Insérez votre tâche dans cette cible pour exécuter une tâche personnalisée avant nettoyage.

AfterClean

Appelé à la fin du nettoyage. Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées après le nettoyage.

BeforeGet

Appelé avant l'extraction des fichiers sources du contrôle de code source. Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées avant l'extraction des fichiers sources.

AfterGet

Appelé après l'extraction des fichiers sources. Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées après l'extraction des fichiers sources.

BeforeLabel

Appelé avant l'étiquetage des fichiers sources. Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées avant la cible Label.

AfterLabel

Appelé à la fin de l'étiquetage. Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées après la cible Label.

BeforeCompile

Appelé avant le démarrage de la compilation. Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées avant la compilation des fichiers de code.

BeforeCompileConfiguration

Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées avant la compilation d'une configuration individuelle.

BeforeCompileSolution

Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées avant la compilation d'une solution individuelle.

AfterCompileSolution

Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées après la compilation d'une solution individuelle.

AfterCompileConfiguration

Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées après la compilation d'une configuration individuelle.

AfterCompile

Appelé à la fin de la compilation. Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées après la compilation des fichiers de code. Pour un exemple, consultez Procédure pas à pas : configuration de Team Build pour générer un projet d'installation Visual Studio.

BeforeGetChangesetsAndUpdateWorkItems

Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées avant d'associer des ensembles de modifications et mettre à jour des éléments de travail.

AfterGetChangesetsAndUpdateWorkItems

Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées après avoir associé des ensembles de modifications et mis à jour des éléments de travail.

BeforeTest

Appelé avant l'exécution des tests. Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées avant la cible Test.

BeforeTestConfiguration

Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées avant de tester une configuration individuelle.

AfterTestConfiguration

Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées après avoir testé une configuration individuelle.

AfterTest

Appelé après l'exécution des tests. Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées après la cible Test.

BeforeDropBuild

Appelé avant l'enregistrement des fichiers binaires générés, des fichiers journaux de génération et des résultats de tests dans le répertoire cible de build sur le serveur de version. Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées avant l'enregistrement des fichiers générés dans le répertoire cible.

AfterDropBuild

Appelé après l'enregistrement des fichiers binaires générés, des fichiers journaux de génération et des résultats de tests sur le serveur de version. Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées après l'enregistrement des fichiers générés dans le répertoire cible.

BeforeCreateWorkItem

Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées avant la création d'éléments de travail.

AfterCreateWorkItem

Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées après la création d'un élément de travail.

BeforeOnBuildBreak

Appelé avant de créer un élément de travail suite à un arrêt de build. Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées avant la cible BuildBreak.

AfterOnBuildBreak

Appelé après la création d'un élément de travail suite à un arrêt de build. Insérez votre tâche dans cette cible pour exécuter des tâches personnalisées après la cible BuildBreak.

GenerateDocumentation

Il s'agit d'une cible vide. Insérez votre tâche dans cette cible pour générer automatiquement la documentation pendant le processus de génération.

Substitution de cibles pour exécuter des tâches personnalisées

Le code de tâche que vous devez écrire doit être associé à une cible et les fichiers binaires générés doivent être disponibles sur l'ordinateur de build, soit en fournissant le chemin d'accès du contrôle de code source dans le fichier TfsBuild.proj, soit en copiant les fichiers binaires sur l'ordinateur de build même. Vous devez également enregistrer la tâche personnalisée dans le fichier TfsBuild.proj en la déclarant à l'aide de l'élément MSBuild de UsingTask. Pour plus d'informations, consultez UsingTask, élément (MSBuild). Enfin, déployez la DLL qui contient la tâche personnalisée sur l'ordinateur de build.

Remarque importante :

Chaque définition de build associée au fichier TfsBuild.proj que vous personnalisez est affectée par la modification.

Pour obtenir un exemple d'implémentation de bout en bout d'une tâche personnalisée, consultez Procédure pas à pas : personnalisation de Team Foundation Build avec une tâche personnalisée.

Ordre d'exécution des cibles

L'ordre d'exécution des cibles dépend de la valeur de la propriété CleanCompilationOutputOnly. Si CleanCompilationOutputOnly a la valeur true, les cibles propres (BeforeClean, CoreClean et AfterClean) sont exécutées après les cibles get et label (BeforeGet, CoreGet, AfterGet, BeforeLabel, CoreLabel et AfterLabel). Si la propriété CleanCompilationOutputOnly a la valeur false, les cibles propres sont exécutées avant les cibles get et label. Si la propriété CleanCompilationOutputOnly a la valeur true, seuls les assemblys intermédiaires sont supprimés du répertoire des sources pendant l'exécution de la cible CoreClean. Si cette propriété a la valeur false, tout le répertoire des sources est supprimé pendant l'exécution de la cible CoreClean.

Le tableau suivant affiche la liste ordonnée des cibles qui sont exécutées selon que CleanCompilationOutputOnly a la valeur true ou false. Les cibles que vous pouvez substituer sont signalées.

CleanCompilationOutputOnly = true

CleanCompilationOutputOnly = false

  1. InitializeBuildProperties

  2. BeforeEndToEndIteration (substitution possible)

  3. BuildNumberOverrideTarget (substitution possible)

  4. InitializeEndToEndIteration

  5. BeforeInitializeWorkspace (substitution possible)

  6. CoreInitializeWorkspace

  7. AfterInitializeWorkspace (substitution possible)

  8. InitializeBuild

  9. BeforeGet (substitution possible)

  10. CoreGet

  11. AfterGet (substitution possible)

  12. BeforeLabel (substitution possible)

  13. CoreLabel

  14. AfterLabel (substitution possible)

  15. BeforeClean (substitution possible)

  16. CoreCleanCompilationOutput

  17. AfterClean (substitution possible)

  18. BeforeCompile (substitution possible)

  19. CoreCompile (pour chaque combinaison de plateforme/configuration)

  20. BeforeCompileConfiguration (substitution possible)

  21. CoreCompileConfiguration (pour chaque solution à générer)

  22. BeforeCompileSolution (substitution possible)

  23. CoreCompileSolution

  24. AfterCompileSolution (substitution possible)

  25. AfterCompileConfiguration (substitution possible)

  26. AfterCompile (substitution possible)

  27. BeforeGetChangesetsAndUpdateWorkItems (substitution possible)

  28. CoreGetChangeSetsAndUpdateWorkItems

  29. AfterGetChangesetsAndUpdateWorkItems (substitution possible)

  30. BeforeTest (substitution possible)

  31. CoreTest (pour chaque combinaison de plateforme/configuration)

  32. BeforeTestConfiguration (substitution possible)

  33. CoreTestConfiguration

  34. AfterTestConfiguration (substitution possible)

  35. AfterTest (substitution possible)

  36. GenerateDocumentation (substitution possible)

  37. PackageBinaries (substitution possible)

  38. BeforeDropBuild (substitution possible)

  39. CoreDropBuild

  40. AfterDropBuild (substitution possible)

  41. AfterEndToEndIteration (substitution possible)

  1. InitializeBuildProperties

  2. BeforeEndToEndIteration (substitution possible)

  3. BuildNumberOverrideTarget (substitution possible)

  4. InitializeEndToEndIteration

  5. BeforeInitializeWorkspace (substitution possible)

  6. CoreInitializeWorkspace

  7. AfterInitializeWorkspace (substitution possible)

  8. BeforeClean (substitution possible)

  9. CoreClean

  10. AfterClean (substitution possible)

  11. InitializeBuild

  12. BeforeGet (substitution possible)

  13. CoreGet

  14. AfterGet (substitution possible)

  15. BeforeLabel (substitution possible)

  16. CoreLabel

  17. AfterLabel (substitution possible)

  18. BeforeCompile (substitution possible)

  19. CoreCompile (pour chaque combinaison de plateforme/configuration)

  20. BeforeCompileConfiguration (substitution possible)

  21. CoreCompileConfiguration (pour chaque solution à générer)

  22. BeforeCompileSolution (substitution possible)

  23. CoreCompileSolution

  24. AfterCompileSolution (substitution possible)

  25. AfterCompileConfiguration (substitution possible)

  26. AfterCompile (substitution possible)

  27. BeforeGetChangesetsAndUpdateWorkItems (substitution possible)

  28. CoreGetChangeSetsAndUpdateWorkItems

  29. AfterGetChangesetsAndUpdateWorkItems (substitution possible)

  30. BeforeTest (substitution possible)

  31. CoreTest (pour chaque combinaison de plateforme/configuration)

  32. BeforeTestConfiguration (substitution possible)

  33. CoreTestConfiguration

  34. AfterTestConfiguration (substitution possible)

  35. AfterTest (substitution possible)

  36. GenerateDocumentation (substitution possible)

  37. PackageBinaries (substitution possible)

  38. BeforeDropBuild (substitution possible)

  39. CoreDropBuild

  40. AfterDropBuild (substitution possible)

  41. AfterEndToEndIteration (substitution possible)

Les éléments suivants sont la liste des cibles exécutées lorsqu'une erreur se produit pendant l'exécution de la cible CoreCompile. Les cibles que vous pouvez substituer sont signalées.

  1. SetBuildBreakProperties

  2. BeforeOnBuildBreak (substitution possible)

  3. GetChangesetsOnBuildBreak

  4. BeforeDropBuild (substitution possible)

  5. CoreDropBuild

  6. AfterDropBuild (substitution possible)

  7. BeforeCreateWorkItem (substitution possible)

  8. CoreCreateWorkItem

  9. AfterCreateWorkItem (substitution possible)

  10. CoreOnBuildBreak

  11. AfterOnBuildBreak (substitution possible)

Voir aussi

Tâches

Comment : écrire une tâche

Concepts

Présentation des fichiers de configuration de Team Foundation Build

Propriétés Team Foundation Build personnalisables

Tâches de Team Foundation Build