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
선택적. 조용한 모드를 사용합니다. 사용자에게 확인을 요청하지 마세요.
/force
선택적. 일부 구성 요소를 삭제할 수 없는 경우에도 삭제 프로세스가 계속되도록 지정합니다.
/excludewss
선택적. 프로젝트와 연결된 SharePoint 사이트를 삭제하지 않도록 지정합니다. 다른 프로젝트에서 계속 사용할 수 있도록 기존 사이트를 유지 관리하려면 이 옵션을 지정합니다.
/collection:URL
필수. 프로젝트 컬렉션의 URI를 지정합니다. URI에는 다음 형식을 사용해야 합니다. http://ServerName:Port/VirtualDirectoryName/CollectionName
.
가상 디렉터리를 지정하지 않으면 URI에 다음 형식을 사용해야 합니다. http://ServerName:Port/CollectionName
.
팀프로젝트이름
필수. 프로젝트의 이름입니다. 이름에 공백이 포함된 경우 따옴표로 묶습니다.
발언
프로젝트를 만들 때 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는 삭제할 후보인 모든 구성 요소의 인벤토리를 만듭니다.
여기에는 테스트 관리자, Team Foundation Build 및 Team Foundation 버전 제어와 통합되는 구성 요소가 포함됩니다.
TFSDeleteProject는 팀 탐색기에서 프로젝트 노드를 표시하는 구성 요소를 삭제합니다.
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가 성공적으로 완료된 후 다음 데이터가 배포에 남아 있을 수 있습니다.
큐브안의
프로젝트 데이터. 큐브가 다시 작성될 때까지 프로젝트 데이터는 큐브에 남아 있으며, 이때 웨어하우스 컨트롤러 서비스는 Azure DevOps 데이터베이스에서 삭제된 모든 기록 빌드 데이터를 제거합니다.
드롭 파일 및 폴더를 빌드합니다.
빌드 프로세스 중에 테스트 결과가 포함된 빌드 이진 파일, 빌드 로그 파일 및 로그 파일이 게시됩니다.
이러한 파일의 위치는 삭제되지 않습니다. 이러한 파일을 제거하려면 수동으로 제거해야 합니다.
공유되는 메타데이터를 추적하는 작업 항목.
TFSDeleteProject는 프로젝트 간에 공유되는 작업 항목 추적에 대한 메타데이터를 삭제하지 않습니다.
공유 코드를 포함하는 버전 제어 선반 집합.
여러 프로젝트의 쉘브셋에 코드가 있는 경우 버전 관리 쉘브셋은 삭제되지 않습니다.
프로젝트 삭제 확인
프로젝트 노드가 팀 탐색기에 더 이상 표시되지 않고 프로젝트 포털 웹 사이트 및 보고서 폴더가 더 이상 존재하지 않는지 확인하여 프로젝트 삭제의 성공을 확인할 수 있습니다.
팀 탐색기를 열고 프로젝트가 프로젝트 노드로 표시되지 않는지 확인합니다.
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 Services 사이트 만들기, 편집 및 삭제.
제한 시간 늘리기
기본적으로, TFSDeleteProject 명령에 의해 구성 요소를 삭제하기 위해 이루어지는 각 웹 서비스 호출은 10분 이내에 완료되어야 합니다. 6개의 호출이 있는 경우 프로세스는 최대 1시간이 걸릴 수 있습니다. 많은 양의 데이터와 연결된 프로젝트를 삭제하려는 경우 이 제한 시간을 일시적으로 늘릴 수 있습니다.
메모
제한 시간을 늘리면 변경 내용이 모든 웹 서비스 호출에 영향을 줍니다. 일반적으로 웹 서비스 호출로 인해 서버 성능이 저하되고 사용자가 오랜 시간 동안 사용자 인터페이스를 사용하지 못하도록 차단하기 위해 제한 시간을 10분 이내로 유지하려고 합니다. 따라서 프로젝트가 성공적으로 삭제된 후에는 제한 시간을 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에 대한 상황에 맞는 메뉴를 열고 수정을 선택합니다.
값 데이터에 시간 제한 기간을 밀리초 단위로 입력한 다음 10진수를 선택합니다.
예를 들어 제한 시간을 30분으로 늘리려면 1800000을 입력합니다. 제한 시간을 다시 10분으로 변경하려면 600000을 입력합니다.
확인을 선택합니다.
[파일] 메뉴에서 [종료]를 선택합니다.
예시
다음 명령은 프로젝트 컬렉션 Collection1의 Azure DevOps Server AdventureWorks1 서버 및 팀 탐색기에서 프로젝트 StoreFront와 연결된 모든 구성 요소를 제거합니다.
TFSDeleteProject /force /collection:http://AdventureWorks1:8080/tfs/Collection1 StoreFront