Utiliser TFSDeleteProject pour supprimer un projet sur Azure DevOps local

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

Vous pouvez supprimer un projet de Azure DevOps Server lorsque le projet n’est plus nécessaire à l’aide de TFSDeleteProject.

En outre, s’il existe des composants qui restent non supprimés après l’échec de la création d’un projet, vous pouvez utiliser TFSDeleteProject pour les supprimer.

Pour supprimer un projet de Azure DevOps Services à l’aide de la console d’administration, consultez Supprimer un projet.

Avertissement

TFSDeleteProject détruit définitivement le projet, après quoi il ne peut pas être récupéré. Vous devez sauvegarder toutes les données de projet importantes avant d’utiliser TFSDeleteProject.

Pour accéder à l’outil en ligne de commande TFSDeleteProject, ouvrez une fenêtre d’invite de commandes dans laquelle Visual Studio ou Team Explorer est installé, puis entrez :

cd %programfiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE

Sur une édition 32 bits de Windows, remplacez %programfiles(x86)% par %programfiles%.

Prérequis

Pour utiliser la commande TFSDeleteProject , vous devez être membre du groupe de sécurité Administrateurs Team Foundation ou du groupe de sécurité Administrateurs de projet .

Pour plus d’informations, consultez Définir des autorisations d’administrateur pour Azure DevOps Server.

TFSDeleteproject [/q] [/force] [/excludewss] /collection:URL TeamProjectName

Option

Description

/q

facultatif. Utilisez le mode silencieux. Ne demandez pas à l'utilisateur de confirmer.

/force

facultatif. Spécifie que le processus de suppression doit continuer même si certains composants ne peuvent pas être supprimés.

/excludewss

facultatif. Spécifie de ne pas supprimer le site SharePoint associé au projet. Spécifiez cette option pour gérer le site existant afin que d’autres projets puissent continuer à l’utiliser.

/collection :URL

Obligatoire. Spécifie l’URI de la collection de projets. Vous devez utiliser le format suivant pour l’URI : http://ServerName:Port/VirtualDirectoryName/CollectionName.

Si vous ne spécifiez pas de répertoire virtuel, vous devez utiliser le format suivant pour l’URI : http://ServerName:Port/CollectionName.

NomProjetÉquipe

Obligatoire. Nom du projet. Si le nom inclut des espaces, mettez-le entre des marques de quotations.

Remarques

Lorsque vous créez un projet, Azure DevOps Server crée des objets de données sur le serveur qui héberge Azure DevOps Server et peut créer des objets de données sur le serveur qui héberge les produits SharePoint et le serveur qui héberge SQL Server Reporting Services.

Lorsque vous supprimez un projet, les rapports sont automatiquement supprimés de SQL Server Reporting Services.

Lorsque vous supprimez un projet, vous pouvez choisir de supprimer ou non les objets créés pour prendre en charge le site SharePoint.

Toutefois, une erreur peut empêcher Azure DevOps Server de créer ou de supprimer tous les objets. Pour résoudre ces problèmes, les sections suivantes fournissent des informations générales, des liens vers d’autres ressources et des étapes spécifiques qui vous aident à déterminer la cause du problème, à résoudre le problème et, si nécessaire, à supprimer les objets de données qui restent après l’exécution de TFSDeleteProject.

Processus TFSDeleteProject

Lorsque vous utilisez l’outil en ligne de commande TFSDeleteProject, il supprime d’abord les données du projet, puis les sites Web du projet.

Phase 1 : TFSDeleteProject supprime les données du projet

Dans la première phase, TFSDeleteProject effectue automatiquement les étapes suivantes pour supprimer les données de projet :

  1. TFSDeleteProject crée un inventaire de tous les composants candidats à la suppression.

    Cela inclut les composants qui s’intègrent à Test Manager, Team Foundation Build et le contrôle de version Team Foundation.

  2. TFSDeleteProject supprime le composant qui affiche le nœud de projet dans Team Explorer.

  3. TFSDeleteProject signale la suppression des informations de contrôle de version, mais ne supprime pas immédiatement ces informations.

    Les informations incluent toutes les branches de contrôle de version du projet spécifié, mais aucune autre branche en dehors du projet.

    • Si une branche parente et une branche enfant se trouvent dans le projet, TFSDeleteProject indique à la fois la suppression.
    • Si les branches parent et enfant se trouvent dans des projets différents, TFSDeleteProject signale uniquement la branche spécifiée.
    • Si un autre projet est une branche du projet spécifié, TFSDeleteProject signale uniquement le projet spécifié. Lorsque le projet spécifié est supprimé, le projet de branche devient un orphelin.
  4. TFSDeleteProject supprime immédiatement les données de build, notamment les informations et les données de base, les définitions de build, les agents de build et les résultats de test associés au projet. L’outil ne supprime pas d’emplacements de dépôt de la build.

    Vous n’avez pas besoin de supprimer l’emplacement de suppression de build d’un ancien projet avant de créer un projet qui utilise le même emplacement de dépôt de build.

    Si le projet spécifié contient une grande quantité de données de génération, la suppression peut ne pas finir dans le délai.

    Pour contourner ce problème, consultez Augmenter la période Time-Out, puis réexécutez TFSDeleteProject.

  5. TFSDeleteProject supprime immédiatement les éléments de travail et les champs d’élément de travail qui appartiennent au projet spécifié, et supprime toutes les métadonnées non partagées.

    Si le projet spécifié contient une grande quantité de données d'élément de travail, la suppression peut ne pas finir dans le délai.

    Pour résoudre ce problème, consultez Augmenter la période Time-Out, puis réexécutez TFSDeleteProject.

Phase 2 : TFSDeleteProject supprime les sites web du projet

Dans la deuxième phase, TFSDeleteProject supprime les données suivantes :

Important

L'exécution de ces étapes peut prendre du temps et dégrader ainsi les performances du serveur.

  • TFSDeleteProject Utilise les API Reporting Services pour supprimer des rapports sur le serveur qui héberge Reporting Services.
  • TFSDeleteProject Supprime le site web du portail de projet du serveur qui héberge les produits SharePoint.

Cette étape se produit uniquement si le projet possède le site et si la suppression de site n'est pas exclue dans la ligne de commande. (Considérez que plusieurs projets peuvent pointer vers un seul site, mais qu’un seul d’entre eux peut être le propriétaire où les rapports/tableaux de bord sont par défaut à l’aide de ce projet).

Notes

Avant de supprimer un projet, vous pouvez vérifier que Reporting Services et les produits SharePoint utilisent les URL de projet correctes en vérifiant les paramètres du portail. Pour plus d’informations, consultez Ajouter un portail project.

Si TFSDeleteProject supprime correctement tous les éléments de données ci-dessus, il retourne le message Terminé.

Pour vérifier ce résultat, consultez Vérifier que les composants du projet sont supprimés.

Si un ou plusieurs composants ne sont pas supprimés, vous pouvez réexécuter TFSProjectDelete à l’aide de l’option /force pour poursuivre le processus de suppression même si elle ne peut pas supprimer tous les éléments de données.

Avec cette option TFSDeleteProject, ignore un composant qu’il ne peut pas supprimer, retourne un message d’erreur, supprime le composant suivant et laisse les métadonnées et les paramètres de sécurité du projet intacts.

Données qui peuvent rester non supprimées

Les données suivantes peuvent rester dans le déploiement une fois TFSDeleteProject terminé :

  • Projeter des données dans le cube.

    Les données de projet restent dans le cube jusqu’à ce que le cube soit reconstruit, auquel cas le service de contrôleur d’entrepôt supprime toutes les données de build historiques qui ont été supprimées des bases de données Azure DevOps.

  • Supprimez des fichiers et des dossiers de build.

    Les binaires de génération, les fichiers journaux de génération et les fichiers journaux qui contiennent des résultats des tests sont publiés pendant le processus de génération.

    Les emplacements de ces fichiers ne sont pas supprimés. Si vous souhaitez supprimer ces fichiers, vous devez les supprimer manuellement.

  • Métadonnées de suivi des éléments de travail partagées.

    TFSDeleteProject ne supprime aucune métadonnées pour le suivi des éléments de travail partagés entre les projets.

  • Jeux d’étagères de contrôle de version contenant du code partagé.

    Les jeux d’étagères de contrôle de version ne sont pas supprimés s’il existe du code dans le jeu d’étagères de plusieurs projets.

Vérifier la suppression du projet

Vous pouvez vérifier la réussite de la suppression d’un projet en confirmant que le nœud du projet n’apparaît plus dans team Explorer et que le site web et les dossiers de rapports du portail de projet n’existent plus.

  1. Ouvrez Team Explorer et vérifiez que le projet n’apparaît pas en tant que nœud de projet.

  2. Ouvrez Internet Explorer et tapez l'URL du site Web du portail du projet. Vérifiez que le site n'existe plus.

  3. Dans Internet Explorer, dans la zone Adresse, tapez l'URL du site Web Reporting Services à l'aide de l'un des formats d'URL suivants :

    • http://ReportingServices/Reports
    • http://ReportingServices/Reports_TFSInstance
  4. Dans le Gestionnaire de rapports, choisissez Afficher les détails.

  5. Vérifiez que le dossier du projet supprimé n’apparaît plus.

    Choisissez le dossier racine TfsReports, puis choisissez le dossier nommé pour la collection de projets.

    Il ne doit plus y avoir un dossier avec le nom du projet supprimé.

  6. Si les rapports ou le site Web est conservé, consultez la procédure suivante.

Supprimer les composants restants après la suppression partielle du projet

Si le site web et le dossier rapports du portail de projet restent après la suppression d’un projet, supprimez le site et le dossier manuellement.

  1. Connectez-vous au serveur qui héberge Reporting Services pour le projet que vous avez supprimé.

  2. Ouvrez Internet Explorer, et dans la zone Adresse, tapez l'URL du site Web Reporting Services en utilisant un des formats d'URL suivants :

    • http://localhost/Reports
    • http://localhost/Reports_TFSInstance
  3. Dans le Gestionnaire de rapports, choisissez Afficher les détails.

  4. Choisissez le dossier racine TfsReports, puis choisissez le dossier nommé pour la collection de projets.

  5. Sélectionnez la zone case activée pour le projet qui a été supprimé.

  6. Sélectionnez Supprimer.

  7. Choisissez OK pour confirmer que vous souhaitez supprimer le dossier rapports du projet.

  8. Pour supprimer le site web du portail de projet d’un projet supprimé, consultez la page suivante sur le site Web Microsoft :

Créer, modifier et supprimer des sites Windows SharePoint Services.

Augmenter le délai d’attente

Par défaut, chaque appel de service Web que la commande TFSDeleteProject émet pour supprimer un composant doit se terminer dans les 10 minutes. S'il y a six appels, le processus pourrait prendre une heure. Si vous souhaitez supprimer un projet associé à une grande quantité de données, vous pouvez augmenter temporairement ce délai d’attente.

Notes

Lorsque vous augmentez le délai d'attente, la modification affecte tous les appels de service Web. En général, vous souhaitez garder le délai d'attente à 10 minutes pour empêcher des appels de service Web de dégrader les performances du serveur et provoquer que les utilisateurs ne puissent plus utiliser l'interface utilisateur pour de longues périodes. Par conséquent, après avoir supprimé avec succès le projet, vous devez avancer le délai d'attente de 10 minutes.

Prérequis

Pour compléter ces procédures, vous devez être un Administrateur Windows sur le serveur de couche Application.

Important

Toute modification erronée du Registre de l'ordinateur peut provoquer l'instabilité du système. Si vous n'êtes pas familiarisé avec l'utilisation du Registre, évitez d'ajouter ou de supprimer des entrées ou de le modifier de quelque manière que ce soit.

  1. Connectez-vous au serveur de couche Application.

  2. Choisissez Démarrer, Exécuter, tapez regedit, puis choisissez OK.

  3. Dans le volet du navigateur, développez HKEY_ LOCAL_MACHINE :

    • Si le serveur exécute un système d’exploitation 32 bits, développez : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\11.0\TeamFoundation\RequestSettings
    • Si le serveur exécute un système d’exploitation 64 bits, développez : HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432\Microsoft\VisualStudio\11.0\TeamFoundation\RequestSettings
  4. Si la clé TeamFoundation\RequestSettings n'existe pas, suivez ces étapes pour la créer :

    1. Ouvrez le menu contextuel de TeamFoundation, pointez sur Nouveau, puis choisissez Clé.
    2. Nommez la clé RequestSettings.
    3. Ouvrez le menu contextuel de RequestSettings, pointez sur Nouveau, puis choisissez Valeur DWORD.
    4. Nommez la nouvelle valeur DefaultTimeout.
  5. Ouvrez le menu contextuel de DefaultTimeout et choisissez Modifier.

  6. Dans Valeur du paramètre, tapez le délai d'attente en millisecondes, puis choisissez Décimal.

    Par exemple, pour augmenter le délai d'attente à 30 minutes, tapez 1800000. Pour avancer le délai d'attente de 10 minutes, tapez 600000.

  7. Choisissez OK.

  8. Dans le menu Fichier, choisissez Quitter.

Exemple

La commande suivante supprime tous les composants associés au projet StoreFront sur le serveur Azure DevOps Server AdventureWorks1 de la collection de projets Collection1 et de Team Explorer.

TFSDeleteProject /force /collection:http://AdventureWorks1:8080/tfs/Collection1 StoreFront