Freigeben über


Verwenden von TFSDeleteProject zum Löschen eines Projekts in Azure DevOps lokal

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

Sie können ein Projekt aus Azure DevOps Server entfernen, wenn das Projekt nicht mehr mithilfe von TFSDeleteProject benötigt wird.

Darüber hinaus können Sie TFSDeleteProject verwenden, um Komponenten zu entfernen, falls diese nach einer nicht erfolgreichen Projekterstellung nicht gelöscht worden sind.

Informationen zum Löschen eines Projekts aus Azure DevOps Services mithilfe der Verwaltungskonsole finden Sie unter Löschen eines Projekts.

Warnung

TFSDeleteProject zerstört das Projekt dauerhaft, nach dem es nicht wiederhergestellt werden kann. Sie sollten alle wichtigen Projektdaten sichern, bevor Sie TFSDeleteProject verwenden.

Um auf das Befehlszeilentool TFSDeleteProject zuzugreifen, öffnen Sie ein Eingabeaufforderungsfenster, und geben Sie Folgendes ein:

cd %programfiles%\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\TfsDeleteProject.exe

Voraussetzungen

Um den Befehl TFSDeleteProject zu verwenden, müssen Sie Mitglied der Sicherheitsgruppe Team Foundation-Administratoren oder der Sicherheitsgruppe Projektadministratoren sein.

Weitere Informationen finden Sie unter Festlegen von Administratorberechtigungen für Azure DevOps Server.

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

Option

Beschreibung

/q

Wahlfrei. Verwenden Sie den stillen Modus. Fordern Sie den Benutzer nicht zur Bestätigung auf.

/Kraft

Wahlfrei. Gibt an, dass der Löschvorgang fortgesetzt werden soll, auch wenn einige Komponenten nicht gelöscht werden können.

/excludewss

Wahlfrei. Gibt an, dass die SharePoint-Website, die dem Projekt zugeordnet ist, nicht gelöscht werden soll. Geben Sie diese Option an, um die vorhandene Website beizubehalten, damit andere Projekte sie weiterhin verwenden können.

/collection:URL

Erforderlich. Gibt den URI der Projektsammlung an. Sie müssen das folgende Format für den URI verwenden: http://ServerName:Port/VirtualDirectoryName/CollectionName.

Wenn Sie kein virtuelles Verzeichnis angeben, müssen Sie das folgende Format für den URI verwenden: http://ServerName:Port/CollectionName.

TeamProjectName

Erforderlich. Der Name des Projekts. Wenn der Name Leerzeichen enthält, schließen Sie ihn in Anführungszeichen ein.

Bemerkungen

Wenn Sie ein Projekt erstellen, erstellt Azure DevOps Server Datenobjekte auf dem Server, auf dem Azure DevOps Server gehostet wird, und kann Datenobjekte auf dem Server erstellen, auf dem SharePoint-Produkte gehostet werden, und den Server, auf dem SQL Server Reporting Services gehostet wird.

Wenn Sie ein Projekt entfernen, werden die Berichte automatisch aus SQL Server Reporting Services entfernt.

Wenn Sie ein Projekt entfernen, können Sie auswählen, ob die objekte entfernt werden sollen, die erstellt wurden, um die SharePoint-Website zu unterstützen.

Ein Fehler kann jedoch verhindern, dass Azure DevOps Server alle Objekte erstellt oder löscht. Um diese Probleme zu beheben, stellen die folgenden Abschnitte Hintergrundinformationen, Links zu anderen Ressourcen und spezifische Schritte bereit, mit denen Sie die Ursache des Problems ermitteln, das Problem beheben und bei Bedarf Datenobjekte löschen, die nach dem Ausführen von TFSDeleteProject verbleiben.

TFSDeleteProject-Prozess

Wenn Sie das Befehlszeilentool TFSDeleteProject verwenden, werden zuerst Projektdaten und dann Projektwebsites gelöscht.

Phase 1: TFSDeleteProject löscht Projektdaten

In der ersten Phase führt TFSDeleteProject automatisch die folgenden Schritte aus, um Projektdaten zu entfernen:

  1. TFSDeleteProject erstellt einen Bestand aller Komponenten, die für das Löschen geeignet sind.

    Dazu gehören Komponenten, die mit Test Manager, Team Foundation Build und Team Foundation-Versionierung integriert sind.

  2. TFSDeleteProject löscht die Komponente, die den Projektknoten im Team-Explorer anzeigt.

  3. TFSDeleteProject kennzeichnet die Versionssteuerungsinformationen für das Löschen, löscht diese Informationen jedoch nicht sofort.

    Die Informationen umfassen alle Branches der Versionskontrolle im angegebenen Projekt, aber keine anderen Branches außerhalb des Projekts.

    • Wenn sich sowohl ein übergeordneter als auch ein untergeordneter Zweig im Projekt befinden, kennzeichnet TFSDeleteProject beide zum Löschen.
    • Wenn Parent- und Child-Branches in verschiedenen Projekten sind, kennzeichnet TFSDeleteProject nur den angegebenen Branch.
    • Wenn ein anderes Projekt eine Verzweigung aus dem angegebenen Projekt ist, kennzeichnet TFSDeleteProject nur das angegebene Projekt. Wenn das angegebene Projekt gelöscht wird, wird das Branch-Projekt verwaist.
  4. TFSDeleteProject löscht umgehend die Build-Daten, einschließlich der Informationen und Kerndaten, der Builddefinitionen, der Build-Agents und der Testergebnisse, die dem Projekt zugeordnet sind. Das Tool löscht keine Ablageorte für Builds.

    Sie müssen den Buildablagespeicherort eines alten Projekts nicht löschen, bevor Sie ein Projekt erstellen, das denselben Buildablagespeicherort verwendet.

    Wenn das angegebene Projekt eine große Menge von Builddaten enthält, wird der Löschvorgang möglicherweise nicht innerhalb des Timeoutzeitraums abgeschlossen.

    Informationen zum Umgehen dieses Problems finden Sie unter "Erhöhen der Time-Out Periode" und führen Sie dann TFSDeleteProject erneut aus.

  5. TFSDeleteProject löscht sofort Arbeitselemente und deren Felder, die zum angegebenen Projekt gehören, und löscht alle nicht freigegebenen Metadaten.

    Wenn das angegebene Projekt eine große Menge von Arbeitsaufgabendaten enthält, kann es passieren, dass der Löschvorgang nicht innerhalb des Timeout-Zeitraums abgeschlossen wird.

    Informationen zum Beheben dieses Problems finden Sie unter dem Abschnitt "Erhöhen des Time-Out-Zeitraums", und führen Sie anschließend TFSDeleteProject erneut aus.

Phase 2: TFSDeleteProject löscht Projektwebsites

In der zweiten Phase löscht TFSDeleteProject die folgenden Daten:

Wichtig

Diese Schritte können lange dauern, bis sie abgeschlossen sind, und während dieser Zeit können sie die Serverleistung beeinträchtigen.

  • TFSDeleteProject verwendet die Reporting Services-APIs, um Berichte auf dem Server zu löschen, auf dem Reporting Services gehostet wird.
  • TFSDeleteProject Löscht die Projektportalwebsite vom Server, auf dem SharePoint-Produkte gehostet werden.

Dieser Schritt tritt nur auf, wenn das Projekt der Besitzer der Website ist und das Löschen der Website in der Befehlszeile nicht ausgeschlossen ist. (Beachten Sie, dass mehrere Projekte auf eine einzelne Website verweisen können, aber nur einer davon kann der Besitzer sein, in dem Berichte/Dashboards standardmäßig dieses Projekt verwendet werden).

Anmerkung

Vor dem Löschen eines Projekts können Sie bestätigen, dass Reporting Services und SharePoint-Produkte die richtigen Projekt-URLs verwenden, indem Sie die Portaleinstellungen überprüfen. Weitere Informationen finden Sie unter Hinzufügen eines Projektportals.

Wenn TFSDeleteProject alle oben genannten Datenelemente erfolgreich löscht, wird die Nachricht "Fertig" zurückgegeben.

Informationen zum Überprüfen dieses Ergebnisses finden Sie unter "Überprüfen, ob Projektkomponenten gelöscht wurden".

Wenn eine oder mehrere Komponenten nicht entfernt werden, können Sie TFSProjectDelete erneut ausführen, indem Sie die Option "/force" verwenden, um den Löschvorgang fortzusetzen, auch wenn es nicht in der Lage ist, alle Datenelemente zu löschen.

Mit dieser Option überspringt TFSDeleteProject eine Komponente, die nicht gelöscht werden kann, gibt eine Fehlermeldung zurück, löscht die nächste Komponente und lässt die Projektmetadaten und Sicherheitseinstellungen intakt.

Daten, die möglicherweise nicht gelöscht werden

Möglicherweise verbleiben die folgenden Daten in der Bereitstellung, nachdem TFSDeleteProject erfolgreich abgeschlossen wurde.

  • Projektdaten im Würfel.

    Projektdaten verbleiben im Cube, bis der Cube neu erstellt wird, zu dem Zeitpunkt entfernt der Warehouse Controller-Dienst alle historischen Builddaten, die aus den Azure DevOps-Datenbanken gelöscht wurden.

  • Erstellen von Dropdateien und Ordnern.

    Erstellungsbinärdateien, Buildprotokolldateien und Protokolldateien, die Testergebnisse enthalten, werden während des Buildprozesses veröffentlicht.

    Die Speicherorte für diese Dateien werden nicht gelöscht. Wenn Sie diese Dateien entfernen möchten, müssen Sie sie manuell entfernen.

  • Metadaten zur Nachverfolgung von Arbeitselementen, diegemeinsam genutzt werden.

    TFSDeleteProject löscht keine Metadaten für die Nachverfolgung von Arbeitsaufgaben, die zwischen Projekten gemeinsam genutzt werden.

  • Versionssteuerungs-Regalsets, die gemeinsam genutzten Codeenthalten.

    Versionssteuerungs-Shelvesets werden nicht entfernt, wenn Code in den Shelvesets aus mehreren Projekten vorhanden ist.

Projektlöschung überprüfen

Sie können den Erfolg eines Projektlöschvorgangs überprüfen, indem Sie bestätigen, dass der Projektknoten nicht mehr im Team Explorer angezeigt wird und dass seine Projektportalwebsite und Berichtsordner nicht mehr vorhanden sind.

  1. Öffnen Sie Team Explorer, und stellen Sie sicher, dass das Projekt nicht als Projektknoten angezeigt wird.

  2. Öffnen Sie Internet Explorer, und geben Sie die URL der Projektportalwebsite ein. Stellen Sie sicher, dass die Website nicht mehr vorhanden ist.

  3. Geben Sie in Internet Explorer im Adressfeld die URL der Reporting Services-Website in einem der folgenden URL-Formate ein:

    • http://ReportingServices/Reports
    • http://ReportingServices/Reports_TFSInstance
  4. Wählen Sie im Berichts-Manager die Option "Details anzeigen" aus.

  5. Stellen Sie sicher, dass der Ordner für das gelöschte Projekt nicht mehr angezeigt wird.

    Wählen Sie den Stammordner TfsReports aus, und wählen Sie dann den Ordner aus, der für die Projektsammlung benannt ist.

    Es sollte kein Ordner mehr mit dem Namen des gelöschten Projekts vorhanden sein.

  6. Wenn entweder die Berichte oder die Website verbleiben, lesen Sie das nächste Verfahren.

Entfernen verbleibender Komponenten nach teilweisem Löschen des Projekts

Wenn die Projektportalwebsite und der Ordner "Berichte" nach dem Löschen eines Projekts verbleiben, entfernen Sie die Website und den Ordner manuell.

  1. Melden Sie sich beim Server an, auf dem Reporting Services für das von Ihnen gelöschte Projekt gehostet wird.

  2. Öffnen Sie Internet Explorer, und geben Sie im Feld "Adresse" die URL der Reporting Services-Website in einem der folgenden URL-Formate ein:

    • http://localhost/Reports
    • http://localhost/Reports_TFSInstance
  3. Wählen Sie im Berichts-Manager die Option "Details anzeigen" aus.

  4. Wählen Sie den Stammordner TfsReports aus, und wählen Sie dann den Ordner aus, der für die Projektsammlung benannt ist.

  5. Aktivieren Sie das Kontrollkästchen für das Projekt, das gelöscht wurde.

  6. Wählen Sie "Löschen" aus.

  7. Wählen Sie "OK" aus, um zu bestätigen, dass Sie den Berichtsordner für das Projekt löschen möchten.

  8. Informationen zum Entfernen der Projektportalwebsite eines gelöschten Projekts finden Sie auf der folgenden Seite auf der Microsoft-Website:

Erstellen, Bearbeiten und Löschen von Windows SharePoint Services-Websites.

Erhöhen des Timeoutzeitraums

Standardmäßig muss jeder Webdienstaufruf, den der TFSDeleteProject-Befehl zum Löschen einer Komponente ausgibt, innerhalb von 10 Minuten abgeschlossen werden. Wenn sechs Aufrufe vorhanden sind, kann der Vorgang bis zu einer Stunde dauern. Wenn Sie ein Projekt löschen möchten, das einer großen Datenmenge zugeordnet ist, können Sie diesen Timeoutzeitraum vorübergehend erhöhen.

Anmerkung

Wenn Sie den Timeoutzeitraum erhöhen, wirkt sich die Änderung auf alle Webdienstaufrufe aus. Im Allgemeinen möchten Sie den Timeoutzeitraum innerhalb von 10 Minuten beibehalten, um zu verhindern, dass Webdienstaufrufe die Serverleistung beeinträchtigen und benutzer für längere Zeit von der Verwendung der Benutzeroberfläche gesperrt werden. Daher sollten Sie die Timeout-Dauer nach dem erfolgreichen Löschen des Projekts wieder auf 10 Minuten ändern.

Voraussetzungen

Um diese Verfahren abzuschließen, müssen Sie ein Windows-Administrator auf dem Anwendungsebenenserver sein.

Wichtig

Eine unsachgemäße Änderung der Registrierung Ihres Computers kann dazu führen, dass Ihr Computer instabil wird. Wenn Sie mit der Registrierung nicht vertraut sind, sollten Sie keine Einträge hinzufügen oder entfernen oder auf irgendeine Weise ändern.

  1. Melden Sie sich beim Server der Anwendungsebene an.

  2. Wählen Sie "Start", "Ausführen", geben Sie "regedit" ein, und wählen Sie dann "OK" aus.

  3. Erweitern Sie im Browserbereich HKEY_ LOCAL_MACHINE:

    • Wenn der Server ein 32-Bit-Betriebssystem ausführt, erweitern Sie: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\11.0\TeamFoundation\RequestSettings.
    • Wenn der Server ein 64-Bit-Betriebssystem ausführt, erweitern Sie: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432\Microsoft\VisualStudio\11.0\TeamFoundation\RequestSettings.
  4. Wenn der Schlüssel "TeamFoundation\RequestSettings" nicht vorhanden ist, führen Sie die folgenden Schritte aus, um ihn zu erstellen:

    1. Öffnen Sie das Kontextmenü für TeamFoundation, zeigen Sie auf "Neu", und wählen Sie "Schlüssel" aus.
    2. Nennen Sie den Schlüssel "RequestSettings".
    3. Öffnen Sie das Kontextmenü für RequestSettings, zeigen Sie auf "Neu", und wählen Sie "DWORD-Wert" aus.
    4. Geben Sie dem neuen Wert "DefaultTimeout" einen Namen.
  5. Öffnen Sie das Kontextmenü für DefaultTimeout, und wählen Sie "Ändern" aus.

  6. Geben Sie in "Wertdaten" den Timeoutzeitraum in Millisekunden ein, und wählen Sie dann "Dezimal" aus.

    Um beispielsweise den Timeoutzeitraum auf 30 Minuten zu erhöhen, geben Sie 1800000 ein. Wenn Sie den Timeout-Zeitraum wieder auf 10 Minuten ändern möchten, geben Sie "600000" ein.

  7. Wählen Sie "OK" aus.

  8. Wählen Sie im Menü "Datei" die Option "Beenden" aus.

Beispiel

Mit dem folgenden Befehl werden alle Komponenten entfernt, die dem Projekt StoreFront auf dem Azure DevOps-Server AdventureWorks1 in der Projektsammlung Collection1 und im Team Explorer zugeordnet sind.

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