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 benötigt wird, indem Sie TFSDeleteProject verwenden.

Wenn komponenten nach einer nicht erfolgreichen Projekterstellung wieder bereinigt werden, können Sie tfSDeleteProject verwenden, um sie zu entfernen.

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, danach kann es nicht wiederhergestellt werden. Sie sollten alle wichtigen Projektdaten sichern, bevor Sie TFSDeleteProject verwenden.

Um auf das Befehlszeilentool TFSDeleteProject zuzugreifen, öffnen Sie ein Eingabeaufforderungsfenster, in dem entweder Visual Studio oder Team Explorer installiert ist, und geben Sie Folgendes ein:

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

Ersetzen Sie in einer 32-Bit-Edition von Windows %programfiles(x86)% durch %programfiles%.

Voraussetzungen

Um den TfSDeleteProject-Befehl verwenden zu können, 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

Optional. Verwenden des stillen Modus Der Benutzer wird nicht zur Bestätigung aufgefordert.

/force

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

/excludewss

Optional. 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 zu verwalten, damit sie von anderen Projekten weiterhin verwendet werden kann.

/collection:URL

Erforderlich. Gibt den URI der Projektauflistung 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 sie in Anführungszeichen ein.

Hinweise

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, der SharePoint-Produkte hostet, und dem Server, der SQL Server Reporting Services hostet.

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 zur Unterstützung der SharePoint-Website erstellt wurden.

Ein Fehler kann jedoch verhindern, dass Azure DevOps Server alle Objekte erstellen oder löschen. Um diese Probleme zu beheben, enthalten die folgenden Abschnitte Hintergrundinformationen, Links zu anderen Ressourcen und spezifische Schritte, die Ihnen helfen, die Ursache des Problems zu ermitteln, das Problem zu beheben und bei Bedarf Datenobjekte zu 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 ein Inventar aller Komponenten, die zum Löschen geeignet sind.

    Dies umfasst Komponenten, die in Test Manager, Team Foundation Build und Team Foundation-Versionskontrolle integriert werden.

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

  3. TFSDeleteProject kennzeichnet die Versionskontrollinformationen zum Löschen, löscht diese Informationen jedoch nicht sofort.

    Die Informationen enthalten alle Versionskontrollenbranches im angegebenen Projekt, aber keine anderen Branches außerhalb des Projekts.

    • Wenn sich ein übergeordneter Branch und ein untergeordneter Branch im Projekt befinden, kennzeichnet TFSDeleteProject beide zum Löschen.
    • Wenn sich übergeordnete und untergeordnete Branches in unterschiedlichen Projekten befinden, kennzeichnet TFSDeleteProject nur den angegebenen Branch.
    • Wenn ein anderes Projekt ein Branch aus dem angegebenen Projekt ist, kennzeichnet TFSDeleteProject nur das angegebene Projekt. Wenn das angegebene Projekt gelöscht wird, wird das Verzweigungsprojekt ein Waise.
  4. TFSDeleteProject löscht sofort Builddaten, einschließlich Informationen und Kerndaten, Builddefinitionen, Build-Agents und Testergebnissen, die dem Projekt zugeordnet sind. Das Tool löscht keine Buildablagespeicherorte.

    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 an Builddaten enthält, kann der Löschvorgang möglicherweise nicht innerhalb des Timeouts beendet werden.

    Informationen zur Umgehung dieses Problems finden Sie unter Erhöhen des Time-Out Zeitraums, und führen Sie TFSDeleteProject dann erneut aus.

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

    Wenn das angegebene Projekt eine große Menge an Arbeitselementdaten enthält, kann der Löschvorgang möglicherweise nicht innerhalb des Timeouts beendet werden.

    Informationen zum Beheben dieses Problems finden Sie unter Erhöhen des Time-Out Zeitraums, und führen Sie TFSDeleteProject dann erneut aus.

Phase 2: TFSDeleteProject löscht Projektwebsites

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

Wichtig

Diese Schritte können viel Zeit in Anspruch nehmen. In dieser Zeit kann die Serverleistung abnehmen.

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

Dieser Schritt tritt nur auf, wenn das Projekt die Website besitzt und die Websitelöschung nicht in der Befehlszeile ausgeschlossen ist. (Beachten Sie, dass mehrere Projekte möglicherweise auf eine einzelne Website verweisen, aber nur eines von ihnen kann der Besitzer sein, in dem Berichte/Dashboards standardmäßig dieses Projekt verwenden).)

Hinweis

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 erfolgreich alle oben genannten Datenelemente löscht, wird die Meldung Done zurückgegeben.

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

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 möglich ist, alle Datenelemente zu löschen.

Mit dieser Option TFSDeleteProject überspringt 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 eleziert werden

Die folgenden Daten verbleiben möglicherweise in der Bereitstellung, nachdem TFSDeleteProject erfolgreich abgeschlossen wurde:

  • Projektdaten im Cube.

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

  • Erstellen von Ablegen von Dateien und Ordnern.

    Buildbinärdateien, Buildprotokolldateien und Protokolldateien mit Testergebnissen werden während des Erstellungsprozesses aufgerufen.

    Die Speicherorte für diese Dateien werden nicht gelöscht. Sie müssen die Dateien gegebenenfalls manuell entfernen.

  • Freigegebene Metadaten zur Nachverfolgung von Arbeitselementen.

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

  • Versionskontroll-Shelvesets, die freigegebenen Code enthalten.

    Versionskontroll-Shelvesets werden nicht gelöscht, wenn code im Shelveset aus mehreren Projekten vorhanden ist.

Überprüfen des Löschens des Projekts

Sie können den Erfolg des Löschens eines Projekts überprüfen, indem Sie bestätigen, dass der Projektknoten nicht mehr in Team Explorer angezeigt wird und dass seine Projektportalwebsite und die Berichtsordner nicht mehr vorhanden sind.

  1. Öffnen Sie team Explorer, und vergewissern Sie sich, dass das Projekt nicht als Projektknoten angezeigt wird.

  2. Öffnen Sie Internet Explorer, und geben Sie die URL der Projektportalwebsite ein. Überprüfen Sie, ob die Website nicht mehr vorhanden ist.

  3. Geben Sie im Adressfeld von Internet Explorer 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 Details anzeigen.

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

    Wählen Sie den Stammordner TfsReports und dann den Ordner mit dem Namen für die Projektauflistung aus.

    Es darf keinen Ordner mit dem Namen des gelöschten Projekts mehr geben.

  6. Wenn entweder die Berichte oder die Website verbleiben, fahren Sie mit der nächsten Prozedur fort.

Entfernen der verbleibenden Komponenten nach dem teilweisen Löschen des Projekts

Wenn der Ordner Website und Berichte des Projektportals nach dem Löschen eines Projekts erhalten bleiben, entfernen Sie die Website und den Ordner manuell.

  1. Melden Sie sich bei dem Server an, der Reporting Services für das gelöschte Projekt hostet.

  2. Öffnen Sie Internet Explorer, und geben Sie im Adressfeld 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 Details anzeigen.

  4. Wählen Sie den Stammordner TfsReports und dann den Ordner für die Projektsammlung aus.

  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 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 sein. Wenn es sechs Aufrufe gibt, kann der Prozess 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 verlängern.

Hinweis

Wenn Sie das Timeout vergrößern, wirkt sich die Änderung auf alle Webdienstaufrufe aus. Im Allgemeinen sollte das Timeout nicht länger als 10 Minuten sein, damit Webdienstaufrufe die Serverleistung nicht beeinträchtigen und Benutzer nicht für lange Zeiträume von der Verwendung der Benutzeroberfläche abgehalten werden. Nachdem das Projekt erfolgreich gelöscht wurde, sollten Sie daher als Timeout-Periode wieder 10 Minuten festlegen.

Voraussetzungen

Um diese Verfahren durchführen zu können, müssen Sie als Windows-Administrator auf dem Server für die Anwendungsebene angemeldet sein.

Wichtig

Eine unsachgemäße Bearbeitung der Registrierung des Computers kann zur Folge haben, dass der Computer instabil wird. Wenn Sie mit der Registrierung nicht vertraut sind, sollten Sie keine Einträge hinzufügen bzw. entfernen oder die Registrierung auf andere Art bearbeiten.

  1. Melden Sie sich am Anwendungsebenenserver an.

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

  3. Erweitern Sie im Browserbereich HKEY_ LOCAL_MACHINE:

    • Wenn der Server ein 32-Bit-Betriebssystem ausführt, erweitern Sie folgendermaßen: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\11.0\TeamFoundation\RequestSettings.
    • Wenn der Server ein 64-Bit-Betriebssystem ausführt, erweitern Sie folgendermaßen: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432\Microsoft\VisualStudio\11.0\TeamFoundation\RequestSettings.
  4. Wenn der TeamFoundation\RequestSettings-Schlüssel nicht vorhanden ist, führen Sie folgende 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. Nennen Sie den neuen Wert DefaultTimeout.
  5. Öffnen Sie das Kontextmenü für DefaultTimeout, und wählen Sie Ändern aus.

  6. Geben Sie in Wertdaten das Timeout in Millisekunden ein, und wählen Sie dann Dezimal.

    Beispiel: Um das Timeout auf 30 Minuten zu erhöhen, geben Sie 1800000 ein. Um als Timeout wieder eine Dauer von 10 Minuten festzulegen, geben Sie 600000 ein.

  7. Klicken Sie auf OK.

  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-Server in der Projektsammlung Collection1 und aus Team Explorer zugeordnet sind.

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