使用 TFSDeleteProject 刪除 Azure DevOps 內部部署上的專案

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

使用 TFSDeleteProject 不再需要專案時,您可以從 Azure DevOps Server 移除專案。

此外,如果有元件在專案建立失敗后仍未移除,您可以使用 TFSDeleteProject 來移除它們。

若要使用管理主控台從 Azure DevOps Services 刪除專案,請參閱刪除專案

警告

TFSDeleteProject 會永久終結專案,之後就無法復原。 您應該先備份所有重要的項目數據,再使用 TFSDeleteProject。

若要存取 TFSDeleteProject 命令行工具,請開啟 [命令提示字元] 視窗,其中已安裝 Visual Studio 或 Team Explorer,然後輸入:

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

在 32 位版本的 Windows 上,以 %programfiles% 取代 %programfiles (x86) %。

必要條件

若要使用 TFSDeleteProject 命令,您必須是 Team Foundation Administrators 安全組或 Project Administrators 安全組的成員。

如需詳細資訊,請參閱設定 Azure DevOps Server的系統管理員許可權

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

選項

描述

/q

選擇性。 使用無訊息模式。 不提示使用者進行確認。

/力

選擇性。 指定即使某些元件無法刪除,刪除程序仍應該繼續。

/excludewss

選擇性。 指定不要刪除與項目相關聯的 SharePoint 網站。 指定此選項來維護現有的網站,讓其他專案可以繼續使用。

/collectionURL

必要。 指定專案集合的 URI。 您必須針對 URI 使用下列格式: http://ServerName:Port/VirtualDirectoryName/CollectionName

如果您未指定虛擬目錄,則必須針對 URI 使用下列格式: http://ServerName:Port/CollectionName

TeamProjectName

必要。 專案的名稱。 如果名稱中包含空格,請使用引號括住該名稱。

備註

當您建立專案時,Azure DevOps Server 會在裝載 Azure DevOps Server 的伺服器上建立數據物件,而且可以在裝載 SharePoint 產品的伺服器上建立數據物件,以及裝載 SQL Server Reporting Services 的伺服器。

當您移除專案時,報表會自動從 SQL Server Reporting Services 中移除。

當您移除專案時,您可以選擇是否要移除建立以支援 SharePoint 網站的物件。

不過,錯誤可能會防止 Azure DevOps Server 建立或刪除所有物件。 為了針對這些問題進行疑難解答,下列各節提供背景資訊、連結至其他資源,以及協助您判斷問題原因的特定步驟、修正問題,以及在必要時刪除在執行 TFSDeleteProject 之後所保留的數據物件。

TFSDeleteProject 程式

當您使用 TFSDeleteProject 命令行工具時,它會先刪除專案數據,然後投影網站。

階段 1:TFSDeleteProject 會刪除項目數據

在第一個階段中,TFSDeleteProject 會自動執行下列步驟來移除項目數據:

  1. TFSDeleteProject 會建立所有要刪除之元件的清查。

    這包括與 Test Manager、Team Foundation Build 和 Team Foundation 版本控制整合的元件。

  2. TFSDeleteProject 會刪除在 Team Explorer 中顯示項目節點的元件。

  3. TFSDeleteProject 會標示要刪除的版本控制資訊,但不會立即刪除此資訊。

    該資訊包括指定專案中的所有版本控制項分支,但不包括專案以外的其他分支。

    • 如果父分支和子分支都位於專案中,TFSDeleteProject 會同時標示要刪除。
    • 如果父分支和子分支位於不同的專案中,TFSDeleteProject 旗標只會指定分支。
    • 如果另一個專案是來自指定專案的分支,TFSDeleteProject 只會標幟指定的專案。 刪除指定的專案時,分支專案會失去關聯。
  4. TFSDeleteProject 會立即刪除組建數據,包括資訊和核心數據、組建定義、組建代理程式,以及與專案相關聯的測試結果。 此工具不會刪除組建置放位置。

    您不需要先刪除舊專案的建置位置,再建立使用相同的建置置位置的專案。

    如果指定的專案包含大量的組建資料,可能會無法在逾時期間內完成刪除。

    若要解決此問題,請參閱增加 Time-Out 期間,然後再次執行 TFSDeleteProject。

  5. TFSDeleteProject 會立即刪除屬於指定專案的工作專案和工作專案欄位,並刪除所有非共用元數據。

    如果指定的專案包含大量的工作項目資料,可能會無法在逾時期間內完成刪除。

    若要解決此問題,請參閱增加 Time-Out 期間,然後再次執行 TFSDeleteProject。

階段 2:TFSDeleteProject 刪除項目網站

在第二個階段中,TFSDeleteProject 會刪除下列數據:

重要

這些步驟可能需要較長的時間才能完成,而在該段期間內,伺服器效能可能會降低。

  • TFSDeleteProject 使用 Reporting Services API 來刪除裝載 Reporting Services 之伺服器上的報表。
  • TFSDeleteProject 從裝載 SharePoint 產品的伺服器刪除專案入口網站。

如果專案擁有站台,而命令列中未排除站台刪除時,才會執行這個步驟 (考慮多個專案可能會指向單一網站,但只有其中一個專案可以是預設使用此專案) 報表/儀錶板的擁有者。

注意

刪除專案之前,您可以確認入口網站設定 Reporting Services 和 SharePoint 產品正在使用正確的專案 URL。 如需詳細資訊,請參閱 新增專案入口網站

如果 TFSDeleteProject 成功刪除上述所有數據元素,則會傳回 「完成」訊息。

若要確認此結果,請參閱確認專案元件已刪除。

如果未移除一或多個元件,您可以使用 /force 選項來重新執行 TFSProjectDelete,即使它無法刪除所有數據元素也一樣。

使用此選項 TFSDeleteProject 時,會略過無法刪除的元件、傳回錯誤訊息、刪除下一個元件,以及讓專案元數據和安全性設定保持不變。

可能保持未刪除的數據

TFSDeleteProject 成功完成之後,下列數據可能會保留在部署中:

  • Cube中的項目數據

    項目數據會保留在 Cube 中,直到 Cube 重建為止,此時倉儲控制器服務會移除已從 Azure DevOps 資料庫刪除的所有歷史建置數據。

  • 建置置檔案和資料夾

    組建二進位檔、組建記錄檔,以及包含測試結果的記錄檔都會在建置流程期間發佈。

    這些檔案的位置並不會被刪除。 如果要移除這些檔案,您必須手動移除。

  • 共用的工作項目追蹤元數據

    TFSDeleteProject 不會刪除專案之間共用之工作項目追蹤的任何元數據。

  • 包含共用程式代碼的版本控制擱置集

    如果有多個項目的擱置集中有程序代碼,版本控制擱置集就不會刪除。

確認項目刪除

您可以確認項目節點不再出現在 Team Explorer 中,並確認其專案入口網站和報告資料夾已不存在,以確認專案刪除成功。

  1. 開啟 Team Explorer,並確認專案未顯示為項目節點。

  2. 開啟 Internet Explorer,然後輸入專案入口網站的 URL。 確認該網站是否不再存在。

  3. 在 Internet Explorer 的 [位址] 方塊中,使用下列其中一種 URL 格式輸入 Reporting Services 網站的 URL:

    • http://ReportingServices/Reports
    • http://ReportingServices/Reports_TFSInstance
  4. 在報表管理員中,選擇 [顯示詳細資料]。

  5. 確認已刪除項目的資料夾不再出現。

    選擇根資料夾 TfsReports,然後選擇專案集合名為 的資料夾。

    資料夾的名稱不可再使用已刪除專案的名稱。

  6. 如果報告或網站仍存在,請參閱下一個程序。

在部分專案刪除之後移除剩餘的元件

如果專案入口網站和報表資料夾在您刪除項目之後仍保留,請手動移除網站和資料夾。

  1. 針對您刪除的專案,登入載入 Reporting Services 的伺服器。

  2. 開啟 Internet Explorer,並在 [位址] 方塊中使用下列其中一種 URL 格式輸入 Reporting Services 網站的 URL:

    • http://localhost/Reports
    • http://localhost/Reports_TFSInstance
  3. 在報表管理員中,選擇 [顯示詳細資料]。

  4. 選擇根資料夾 TfsReports,然後選擇名為 的專案集合資料夾。

  5. 選取已刪除之項目的複選框。

  6. 選擇 [刪除]。

  7. 選擇 [確定] 以確認您想要刪除專案的 reports 資料夾。

  8. 若要移除已刪除專案的專案入口網站,請參閱 Microsoft 網站上的下列頁面:

建立、編輯和刪除 Windows SharePoint Services 網站

增加逾時期間

根據預設,每個 Web 服務都會呼叫 TFSDeleteProject 命令發出以刪除元件必須在 10 分鐘內完成。 如果有六個呼叫,處理序最多可能需要一個小時。 如果您想要刪除與大量數據相關聯的專案,您可以暫時增加此逾時期間。

注意

當您提高逾時期限時,此變更會影響所有的 Web 服務呼叫。 通常會將逾時期限保持在 10 秒內,以避免 Web 服務呼叫降低伺服器的效能,並防止使用者因長時間使用使用者介面而被登出。 因此,成功刪除專案之後,您應該將逾時期限變更回為 10 分鐘。

必要條件

您必須是應用程式層伺服器的 Windows 系統管理員,才能完成這些程序。

重要

不當修改您電腦的登錄可能造成電腦不穩定。 如果您對登錄並不熟悉,則不應該新增或移除登錄,或以任何方式進行修改。

  1. 登入應用程式層伺服器。

  2. 依序選擇 [開始] 和 [執行],然後輸入 regedit,再選擇 [確定]。

  3. 在瀏覽器窗格中,展開HKEY_ LOCAL_MACHINE:

    • 如果伺服器執行 32 位元作業系統,請展開:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\11.0\TeamFoundation\RequestSettings。
    • 如果伺服器執行 64 位元作業系統,請展開:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432\Microsoft\VisualStudio\11.0\TeamFoundation\RequestSettings。
  4. 如果 TeamFoundation\RequestSettings 機碼不存在,請依照下列步驟建立:

    1. 開啟 [TeamFoundation] 的內容功能表,指向 [新增],然後選擇 [機碼]。
    2. 將機碼命名為 RequestSettings。
    3. 開啟 [RequestSettings] 的內容功能表,指向 [新增],然後選擇 [DWORD 值]。
    4. 將新值命名為 DefaultTimeout。
  5. 開啟 [DefaultTimeout] 的內容功能表,然後選擇 [修改]。

  6. 在 [數値資料] 中輸入逾時期限 (以毫秒為單位),然後選擇 [十進位]。

    例如,若要將逾時期限增加為 30 分鐘,請輸入 1800000。 若要將逾時期限變更回 10 分鐘,請輸入 600000。

  7. 選擇 [確定]。

  8. 選擇 [檔案] 功能表上的 [結束]。

範例

下列命令會移除專案集合 Collection1 和 Team Explorer 中,Azure DevOps Server AdventureWorks1 伺服器上與專案 StoreFront 相關聯的所有元件。

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