Partager via


Cibles Team Foundation Build personnalisables

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.

Important

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.

Notes

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é au terme 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.

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 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 par suite d'un arrêt de génération. 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 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 écrivez doit être associé à une cible. Pour plus d'informations, consultez Écriture de tâches. Pour écrire une tâche personnalisée, vous devez suivre ces étapes.

  1. Écrivez le code de tâche et vérifiez que les fichiers binaires générés sont 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.

    Notes

    Vérifier le code de tâche dans le contrôle de code source est une bonne pratique de programmation mais ce n'est pas absolument nécessaire.

  2. Enregistrez la tâche personnalisée dans le fichier TfsBuild.proj en le déclarant à l'aide de l'élément UsingTaskMSBuild.

    Pour plus d'informations, consultez UsingTask, élément (MSBuild).

    <UsingTask 
        TaskName="MyTasks.SimpleTask" 
        AssemblyName="MyAssembly.Build.Tasks"/>
    
  3. Exécutez la tâche en l'insérant dans la cible désirée dans le fichier TfsBuild.proj.

    <Target Name="BeforeGet">
        <SimpleTask />
    </Target>
    

    Notes

    L'ajout de cette balise provoque des avertissements au niveau du schéma XML. Vous pouvez ignorer ces avertissements sans risque.

  4. Déployez la DLL qui contient la tâche personnalisée sur l'ordinateur de build.

    Important

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

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 affichées en texte gras.

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 (pour chaque combinaison de plateforme/configuration)

  20. BeforeCompileConfiguration

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

  22. BeforeCompileSolution

  23. CoreCompileSolution

  24. AfterCompileSolution

  25. AfterCompileConfiguration

  26. AfterCompile

  27. BeforeGetChangesetsAndUpdateWorkItems

  28. CoreGetChangeSetsAndUpdateWorkItems

  29. AfterGetChangesetsAndUpdateWorkItems

  30. BeforeTest

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

  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 (pour chaque combinaison de plateforme/configuration)

  20. BeforeCompileConfiguration

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

  22. BeforeCompileSolution

  23. CoreCompileSolution

  24. AfterCompileSolution

  25. AfterCompileConfiguration

  26. AfterCompile

  27. BeforeGetChangesetsAndUpdateWorkItems

  28. CoreGetChangeSetsAndUpdateWorkItems

  29. AfterGetChangesetsAndUpdateWorkItems

  30. BeforeTest

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

  32. BeforeTestConfiguration

  33. CoreTestConfiguration

  34. AfterTestConfiguration

  35. AfterTest

  36. GenerateDocumentation

  37. BeforeDropBuild

  38. CoreDropBuild

  39. AfterDropBuild

  40. AfterEndToEndIteration

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 affichées en texte gras.

  1. SetBuildBreakProperties

  2. BeforeOnBuildBreak

  3. GetChangesetsOnBuildBreak

  4. BeforeDropBuild

  5. CoreDropBuild

  6. AfterDropBuild

  7. BeforeCreateWorkItem

  8. CoreCreateWorkItem

  9. AfterCreateWorkItem

  10. CoreOnBuildBreak

  11. AfterOnBuildBreak

Voir aussi

Concepts

Présentation des fichiers de configuration de Team Foundation Build

Propriétés Team Foundation Build personnalisables