使用 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 命令行工具,請開啟 [命令提示字元] 視窗並輸入:
cd %programfiles%\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\TfsDeleteProject.exe
先決條件
若要使用 TFSDeleteProject 命令,您必須是 Team Foundation Administrators 安全組或 Project Administrators 安全組的成員。
如需詳細資訊,請參閱 設定 Azure DevOps Server的系統管理員許可權。
TFSDeleteproject [/q] [/force] [/excludewss] /collection:URL TeamProjectName
選項
描述
/q
自選。 使用靜音模式。 請勿提示用戶進行確認。
/強制
自選。 指定即使某些元件無法刪除,刪除程式仍應該繼續。
/excludewss
自選。 指定不要刪除與項目相關聯的 SharePoint 網站。 指定此選項來維護現有的網站,讓其他專案可以繼續使用它。
/collection:URL
必填。 指定專案集合的 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 會自動執行下列步驟來移除項目數據:
TFSDeleteProject 會建立所有候選刪除元件的清單。
這包括與 Test Manager、Team Foundation Build 和 Team Foundation 版本控制整合的元件。
TFSDeleteProject 會刪除在 Team Explorer 中顯示項目節點的元件。
TFSDeleteProject 會標幟版本控制資訊以供刪除,但不會立即刪除此資訊。
此資訊包含指定專案中的所有版本控制分支,但專案外部沒有其他分支。
- 如果父分支和子分支都位於專案中,TFSDeleteProject 會同時標記兩者進行刪除。
- 如果父分支和子分支位於不同的專案中,TFSDeleteProject 只會標幟指定的分支。
- 如果另一個專案是指定專案的分支,TFSDeleteProject 只會標幟指定的專案。 刪除指定的專案時,分支專案會變成孤立專案。
TFSDeleteProject 會立即刪除組建數據,包括資訊和核心數據、組建定義、組建代理程式,以及與專案相關聯的測試結果。 此工具不會刪除組建置放位置。
您不需要在建立使用相同建置放置位置的新專案前,刪除舊專案的建置放置位置。
如果指定的專案包含大量的建置數據,刪除作業可能不會在逾時期間內完成。
若要解決此問題,請參閱如何延長 Time-Out 期間,然後再次執行 TFSDeleteProject。
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 中,且其專案入口網站和報表資料夾已不存在,以確認專案刪除成功。
開啟 Team Explorer,並確認專案未顯示為項目節點。
開啟 Internet Explorer,然後輸入專案入口網站網站的 URL。 確認網站已不存在。
在 Internet Explorer 的 [位址] 方塊中,使用下列其中一種 URL 格式輸入 Reporting Services 網站的 URL:
http://ReportingServices/Reports
http://ReportingServices/Reports_TFSInstance
在報表管理員中,選擇 [顯示詳細數據]。
確認已刪除項目的資料夾不再出現。
選擇根資料夾 TfsReports,然後選擇為專案集合命名的資料夾。
不應該再有資料夾具有已刪除項目的名稱。
如果報告或網站中的任一仍然存在,請參閱下一個步驟。
在部分專案刪除後移除剩餘元件
如果專案入口網站和報表資料夾在您刪除項目之後仍保留,請手動移除網站和資料夾。
登入裝載您所刪除專案的 Reporting Services 伺服器。
開啟 Internet Explorer,然後在 [位址] 方塊中,使用下列其中一種 URL 格式輸入 Reporting Services 網站的 URL:
http://localhost/Reports
http://localhost/Reports_TFSInstance
在報表管理員中,選擇 [顯示詳細數據]。
選擇根資料夾 TfsReports,然後選擇為專案集合命名的資料夾。
選取已刪除之項目的複選框。
選擇 [刪除]。
選擇 [確定] 以確認您想要刪除項目的報表資料夾。
若要移除已刪除專案的專案入口網站,請參閱Microsoft網站上的下列頁面:
建立、編輯和刪除 Windows SharePoint 服務網站。
增加逾時期間
根據預設,TFSDeleteProject 命令要刪除元件的每個 Web 服務呼叫必須在 10 分鐘內完成。 如果有六個呼叫,則過程最多可能需要一小時。 如果您想要刪除與大量數據相關聯的專案,您可以暫時增加此逾時期間。
注意
當您增加逾時期間時,變更會影響所有 Web 服務呼叫。 一般而言,您想要將逾時期限設定為 10 分鐘內,以防止 Web 服務呼叫可能降低伺服器效能,並導致使用者介面長時間無法使用。 因此,成功刪除專案之後,您應該將逾時期間變更回 10 分鐘。
先決條件
若要完成這些程式,您必須是應用層伺服器上的 Windows 系統管理員。
重要
不當修改電腦的登錄可能會導致您的電腦變得不穩定。 如果您不熟悉登錄檔,則不應該新增或移除專案,或進行任何修改。
登入應用層伺服器。
選擇 [開始]、[執行]、輸入 regedit,然後選擇 [確定]。
在瀏覽窗格中,展開 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。
如果 TeamFoundation\RequestSettings 機碼不存在,請遵循下列步驟來建立它:
- 開啟 TeamFoundation 的操作功能表,指向 [新增],然後選擇 [金鑰]。
- 將金鑰命名為 RequestSettings。
- 開啟 RequestSettings 的內容功能表,指向「新增」,然後選擇「DWORD 值」。
- 將新值命名為 DefaultTimeout。
開啟 DefaultTimeout 的操作功能表,然後選擇 [修改]。
在 [值數據] 中,輸入以毫秒為單位的逾時期間,然後選擇 [十進位]。
例如,若要將逾時期間增加至 30 分鐘,請輸入 18000000。 若要將逾時期間變更回 10 分鐘,請輸入 600000。
選擇 [確定]。
在 [檔案] 功能表上,選擇 [結束]。
例
下列命令會移除所有與專案 StoreFront 相關的元件,這些元件位於 Azure DevOps Server AdventureWorks1 伺服器上的專案集合 Collection1 中,以及 Team Explorer 中。
TFSDeleteProject /force /collection:http://AdventureWorks1:8080/tfs/Collection1 StoreFront