Partager via


Diagnostiquer des problèmes de build

Le diagnostic et la résolution des problèmes liés à la build sont des tâches ordinaires associées au développement de logiciels. Team Foundation Build fournit des outils pour vous aider à corriger et à résoudre des problèmes tels que :

  • les échecs ou les réussites partielles des générations ;

  • les exceptions, erreurs ou avertissements ;

  • les événements ou les résultats inattendus.

Que voulez-vous faire ?

  • Déterminer pourquoi une génération ne s'exécute pas

  • Rechercher les informations sur un problème dans la fenêtre des résultats de la génération

  • Demander et afficher les journaux de diagnostic

  • Vérifier votre système de génération et déboguer votre processus de génération

  • Obtenir davantage de conseils

Autorisations requises

Vous devez être membre du groupe Administrateurs Windows sur le serveur de builds et membre du groupe Project Collection Build Administrators pour votre collection de projets d'équipe. Consultez Référence des autorisations pour Team Foundation Server.

Déterminer pourquoi une génération ne s'exécute pas

Si la build est la suivante dans la file d'attente, mais ne s'exécute toujours pas, vérifiez que le contrôleur de build et au moins l'un de ses agents de build sont disponibles et activés. Si votre processus de génération a des filtres d'agent de build, vérifiez qu'un agent de build répondant aux critères est disponible et activé. Voir Gérer votre système de génération, Spécifier les agents de build qui traitent votre build et Déployer et configurer les agents de build.

Rechercher les informations sur un problème dans la fenêtre des résultats de la génération

Si votre build s'exécute, se trouve bloquée dans le déroulement de son processus ou est terminée, vous pouvez obtenir plus d'informations sur les problèmes dans la fenêtre Résultats de build. Sélectionnez Afficher le journal pour afficher des informations plus détaillées :

  • pour passer directement aux problèmes de la build, sélectionnez Erreur suivante ou Avertissement suivant ;

  • chaque fois que vous voyez des instances d'un lien Fichier journal MSBuild, sélectionnez-le pour obtenir des informations plus détaillées sur les événements qui se sont produits lorsque l'activité MSBuild a compilé votre code et exécuté d'autres tâches ;

  • vous pouvez copier les informations et, si vous le souhaitez, les partager avec des personnes qui peuvent vous aider à résoudre les problèmes. Sélectionnez des passages particuliers du journal ou ouvrez un menu contextuel à n'importe quel endroit dans celui-ci, puis choisissez Sélectionner tout. Vous pouvez ensuite ouvrir un menu contextuel et sélectionner Copier pour copier le texte dans le presse-papiers.

Afficher les journaux de diagnostic

Si vous n'avez pas encore suffisamment d'informations pour identifier le problème, vous pouvez afficher des journaux de diagnostic plus détaillés. Dans la fenêtre Résultats de la génération, sélectionnez Diagnostics, puis :

  • si la build est terminée, choisissez Journaux finaux à partir de date and time ;

  • si la build n'est pas encore terminée, choisissez Demander les journaux.

    Récupération du journal des diagnostics

    Le système assemble les journaux.

    Lorsque les journaux sont prêts, sélectionnez Diagnostics, À partir de la date et l'heure **pour l'**Utilisateur qui a demandé le journal.

Si votre build répertorie la sortie vers un dossier cible de chemin UNC, le système ouvrira un sous-dossier du dossier cible contenant les journaux de diagnostic. Après avoir ouvert le dossier cible ou téléchargé le fichier .zip, vous pouvez afficher l'un des journaux suivants :

  • à partir du contrôleur de build : ActivityLog ;

  • à partir de chaque agent de build qui a participé à la génération : **ActivityLog.AgentScope.**Build_Agent_ID ;

  • pour chaque solution compilée par l'activité MSBuild : Solution_Name

Le meilleur moyen d'afficher ces journaux consiste à les copier sur votre ordinateur de développement et à les ouvrir à partir de cet emplacement.

Notes

Si vous utilisez Visual Studio 2010, le menu Diagnostics n'est pas affiché dans la fenêtre Résultats de la génération, mais vous pouvez toujours afficher les journaux de diagnostic dans le dossier cible une fois la génération terminée.

Vérifier votre système de génération et déboguer votre processus de génération

Certains problèmes peuvent être provoqués par votre système de génération local.

Conseil

Essayez de déployer votre ordinateur de développement en tant que serveur de builds afin de pouvoir accéder directement à l'environnement dans lequel le processus de génération s'exécute.Consultez Déployer et configurer un serveur de build.

Vérifier vos composants système de génération

Vérifiez que votre serveur de builds, votre contrôleur et votre agent sont correctement configurés. Voir Déployer et configurer un serveur de build, Déployer et configurer un contrôleur de build et Déployer et configurer les agents de build.

Connectez-vous au serveur de builds et vérifiez qu'il fonctionne correctement. Il vous est également possible d'afficher des données de diagnostic détaillées sur le serveur de builds. Consultez Gérer votre système de génération.

Déboguer un processus de génération sur le serveur de builds

Pour diagnostiquer les problèmes causés par les activités de processus de génération personnalisé ou par des exceptions non interceptées, essayez de déboguer le processus de génération sur votre serveur de builds.

  1. Ouvrez une session sur le serveur de builds.

  2. Exécutez Visual Studio en tant qu'administrateur.

  3. Dans Visual Studio, dans la barre de menus, sélectionnez Outils, Joindre au processus.

  4. Dans la boîte de dialogue Joindre au processus :

    1. Sélectionnez Afficher les processus de tous les utilisateurs.

    2. Sélectionnez TFSBuildServiceHost.exe.

    3. Choisissez Attacher.

  5. Dans la barre de menus, choisissez Débogage, Exceptions. Dans la boîte de dialogue Exceptions, sélectionnez Exceptions Common Langage Runtime. Cliquez sur OK.

  6. Dans la barre de menus, choisissez Outils, Options. Dans la boîte de dialogue Options, dans le volet d'arborescence, sélectionnez Débogage. Dans la liste Général, désactivez la case à cocher Activer uniquement mon code. Cliquez sur OK.

  7. Dans Visual Studio, mettez la build en file d'attente et vérifiez qu'elle s'exécute sur un contrôleur de build et un serveur de builds hébergés sur le serveur de builds sur lequel vous avez activé le débogueur.

Vous pouvez maintenant déboguer les exceptions levées pendant le processus de génération, et également définir des points d'arrêt et déboguer vos activités de processus de génération personnalisées. Consultez Débogage dans Visual Studio.

Conseils

  • Conseil Lors du diagnostic de problèmes liés à un processus de génération, vous pouvez épargner des soucis à vous-même et à vos collègues en suspendant le processus jusqu'à ce que vous soyez à même de le réparer :

    • Modifiez la définition de build, puis en bas de l'onglet Général, choisissez Suspendu.

    • Pour tester les corrections apportées à votre processus de génération, sélectionnez une build en file d'attente, ouvrez son menu contextuel, puis choisissez Démarrer maintenant.

  • ConseilSi vous pensez que l'un des composants de votre système de génération peut être à l'origine de l'un des problèmes, vous pouvez selon le besoin démarrer, arrêter ou redémarrer un serveur de builds ou activer ou désactiver un contrôleur ou un agent. Consultez Gérer votre système de génération.

  • ConseilSouvent, lors d'une tentative de résolution des problèmes d'un processus de génération, vous devrez mettre en file d'attente à plusieurs reprises une build avec les mêmes options afin de tester différents correctifs. Vous pouvez rapidement recommencer l'essai d'une build :

    • dans la fenêtre Résultats de la génération en sélectionnant Actions, puis Recommencer la build ;

    • dans la page Builds dans Team Explorer ou dans l'Explorateur de builds, en sélectionnant une build terminée, en ouvrant son menu contextuel et en choisissant Recommencer la build.

  • ConseilVous utilisez le contrôleur de build hébergé ? Voir Utiliser le contrôleur de build hébergé.