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 d’Azure DevOps Server lorsque le projet n’est plus requis à l’aide de TFSDeleteProject.
En outre, s’il existe des composants qui restent supprimés après une création de projet ayant échoué, vous pouvez utiliser TFSDeleteProject pour les supprimer.
Pour supprimer un projet d’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 et entrez :
cd %programfiles%\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\TfsDeleteProject.exe
Conditions préalables
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
Optionnel. Utilisez le mode silencieux. N’invitez pas l’utilisateur à confirmer.
/force
Optionnel. Spécifie que le processus de suppression doit continuer même si certains composants ne peuvent pas être supprimés.
/excludewss
Optionnel. Spécifie de ne pas supprimer le site SharePoint associé au projet. Spécifiez cette option pour conserver 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
.
TeamProjectName
Obligatoire. Nom du projet. Si le nom inclut des espaces, placez-le entre guillemets.
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 des 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 en arrière-plan, 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 des objets de données qui restent après l’exécution de TFSDeleteProject.
Processus de 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 du projet :
TFSDeleteProject crée un inventaire de tous les composants qui sont candidats à la suppression.
Cela inclut les composants qui s’intègrent à Test Manager, Team Foundation Build et team Foundation version control.
TFSDeleteProject supprime le composant qui affiche le nœud du projet dans Team Explorer.
TFSDeleteProject signale les informations de contrôle de version pour suppression, mais ne supprime pas immédiatement ces informations.
Les informations incluent toutes les branches de contrôle de version dans le projet spécifié, mais aucune autre branche en dehors du projet.
- Si une branche parente et une branche enfant se trouvent tous les deux dans le projet, TFSDeleteProject signale les deux pour suppression.
- Si les branches parent et enfant se trouvent dans différents projets, 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 orphelin.
TFSDeleteProject supprime immédiatement les données de build, notamment les informations et les données principales, les définitions de build, les agents de build et les résultats des tests associés au projet. L'outil ne supprime pas les emplacements de dépôt de 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 suppression de build.
Si le projet spécifié contient une grande quantité de données de build, la suppression peut ne pas se terminer pendant la période d’expiration.
Pour contourner ce problème, consultez Augmenter la période de Time-Out, puis réexécutez TFSDeleteProject.
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 se terminer pendant la période d’expiration.
Pour résoudre ce problème, consultez Augmenter la période de Time-Out, puis réexécutez TFSDeleteProject.
Phase 2 : TFSDeleteProject supprime les sites web de projet
Dans la deuxième phase, TFSDeleteProject supprime les données suivantes :
Important
Ces étapes peuvent prendre beaucoup de temps et, pendant ce temps, elles peuvent dégrader 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 à partir du serveur qui héberge les produits SharePoint.
Cette étape se produit uniquement si le projet possède le site et la suppression du site n’est pas exclu dans la ligne de commande. (Considérez que plusieurs projets peuvent pointer vers un site unique, 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).
Note
Avant de supprimer un projet, vous pouvez confirmer que Reporting Services et les produits SharePoint utilisent les URL de projet appropriées en vérifiant les paramètres du portail. Pour plus d’informations, consultez Ajouter un portail de projets.
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 continuer le processus de suppression même s’il n’est pas en mesure de 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 du projet et les paramètres de sécurité intacts.
Données qui peuvent rester non supprimées
Les données suivantes peuvent rester dans le déploiement une fois que TFSDeleteProject a réussi :
données projet dans le cube.
Les données du projet restent dans le cube jusqu’à ce que le cube soit reconstruit, auquel moment 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.
Générer des fichiers et dossiers de type "drop".
Les fichiers binaires de compilation, ainsi que les journaux de compilation et ceux contenant les résultats des tests, sont publiés pendant le processus de compilation.
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.
ensembles de rayons de contrôle de version contenant du code partagé.
Les étagères de contrôle de version ne sont pas supprimées s'il existe du code dans l'étagère provenant de plusieurs projets.
Vérifier la suppression du projet
Vous pouvez vérifier la réussite d’une suppression de projet en confirmant que le nœud du projet n’apparaît plus dans Team Explorer et que son site web du portail de projet et ses dossiers de rapports n’existent plus.
Ouvrez Team Explorer et vérifiez que le projet n’apparaît pas en tant que nœud de projet.
Ouvrez Internet Explorer et tapez l’URL du site web du portail de projet. Vérifiez que le site n’existe plus.
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
Dans le Gestionnaire de rapports, choisissez Afficher les détails.
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 de dossier portant le nom du projet supprimé.
Si les rapports ou le site Web restent, consultez la procédure suivante.
Supprimer les composants restants après la suppression partielle du projet
Si le dossier du site web et des rapports du portail de projet reste après la suppression d’un projet, supprimez le site et le dossier manuellement.
Connectez-vous au serveur qui héberge Reporting Services pour le projet que vous avez supprimé.
Ouvrez Internet Explorer et, dans la zone Adresse, tapez l’URL du site web Reporting Services à l’aide de l’un des formats d’URL suivants :
http://localhost/Reports
http://localhost/Reports_TFSInstance
Dans le Gestionnaire de rapports, choisissez Afficher les détails.
Choisissez le dossier racine TfsReports, puis choisissez le dossier nommé pour la collection de projets.
Cochez la case pour le projet qui a été supprimé.
Choisissez Supprimer.
Choisissez OK pour confirmer que vous souhaitez supprimer le dossier rapports du projet.
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 peut prendre jusqu’à une heure. Si vous souhaitez supprimer un projet associé à une grande quantité de données, vous pouvez augmenter temporairement ce délai d’attente.
Note
Lorsque vous augmentez le délai d’attente, la modification affecte tous les appels de service Web. En général, vous souhaitez limiter le délai d'attente à 10 minutes pour empêcher les appels de service Web de dégrader les performances du serveur et les utilisateurs d'être verrouillés hors de l'interface utilisateur pendant de longues périodes. Par conséquent, une fois le projet supprimé avec succès, vous devez ramener le délai d'attente à 10 minutes.
Conditions préalables
Pour effectuer ces procédures, vous devez être administrateur Windows sur le serveur de la couche Application.
Important
La modification incorrecte du registre de votre ordinateur peut entraîner l’instabilité de votre ordinateur. Si vous n’êtes pas familiarisé avec le Registre, vous ne devez pas ajouter ou supprimer d’entrées, ni le modifier d’une manière quelconque.
Connectez-vous au serveur de la couche Application.
Choisissez Démarrer, Exécuter, tapez regedit, puis ok.
Dans le volet du navigateur, développez HKEY_ LOCAL_MACHINE :
- Si le serveur exécute un système d’exploitation 32 bits, étendez : 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.
Si la clé TeamFoundation\RequestSettings n’existe pas, procédez comme suit pour la créer :
- Ouvrez le menu contextuel pour TeamFoundation, pointez sur Nouveau, puis choisissez Clé.
- Nommez la clé RequestSettings.
- Ouvrez le menu contextuel de RequestSettings, pointez sur Nouveau et choisissez Valeur DWORD.
- Nommez la nouvelle valeur DefaultTimeout.
Ouvrez le menu contextuel de DefaultTimeout et choisissez Modifier.
Dans Value Data, tapez le délai d’attente en millisecondes, puis choisissez Decimal.
Par exemple, pour augmenter le délai d’attente à 30 minutes, tapez 18000000. Pour rétablir le délai d'attente à 10 minutes, tapez 600000.
Choisissez OK.
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 dans collection de projets Collection1 et dans Team Explorer.
TFSDeleteProject /force /collection:http://AdventureWorks1:8080/tfs/Collection1 StoreFront