TFSDeleteProject를 사용 하 여 Azure DevOps 온-프레미스에서 프로젝트 삭제

Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2013

참고

Azure DevOps Server의 이전 이름은 Visual Studio Team Foundation Server였습니다.

TFSDeleteProject를 사용 하 여 프로젝트가 더 이상 필요 하지 않은 경우 Azure DevOps Server에서 프로젝트를 제거할 수 있습니다.

또한 실패 한 프로젝트 생성 후 삭제 되지 않은 구성 요소가 있는 경우 TFSDeleteProject를 사용 하 여 제거할 수 있습니다.

관리 콘솔을 사용 하 여 Azure DevOps Services에서 프로젝트를 삭제 하려면 프로젝트 삭제를 참조 하세요.

경고

TFSDeleteProject는 프로젝트를 영구적으로 소멸 시킨 후 복구할 수 없습니다. TFSDeleteProject를 사용 하기 전에 중요 한 프로젝트 데이터를 모두 백업 해야 합니다.

TFSDeleteProject 명령줄 도구에 액세스 하려면 Visual Studio 또는 팀 탐색기 설치 된 명령 프롬프트 창을 열고 다음을 입력 합니다.

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

Windows 32 비트 버전 에서는% programfiles (x86)%% programfiles% 로 바꿉니다.

사전 요구 사항

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 합니다.

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 팀 탐색기에 프로젝트 노드를 표시 하는 구성 요소를 삭제 합니다.

  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을 사용 하는지 확인할 수 있습니다. 자세한 내용은 Project 포털 추가를 참조 하세요.

TFSDeleteProject는 위의 모든 데이터 요소를 성공적으로 삭제 하면 완료 된 메시지를 반환 합니다.

이 결과를 확인 하려면 Project 구성 요소가 삭제 되었는지 확인을 참조 하세요.

하나 이상의 구성 요소가 제거 되지 않은 경우 모든 데이터 요소를 삭제할 수 없는 경우에도/force 옵션을 사용 하 여 TFSProjectDelete를 다시 실행 하 여 삭제 프로세스를 계속할 수 있습니다.

이 옵션을 사용 하면 TFSDeleteProject는 삭제할 수 없는 구성 요소를 건너뛰고, 오류 메시지를 반환 하 고, 다음 구성 요소를 삭제 하 고, 프로젝트 메타 데이터와 보안 설정을 그대로 유지 합니다.

삭제 되지 않은 상태로 남아 있을 수 있는 데이터

TFSDeleteProject 성공적으로 완료 된 후 다음 데이터가 배포에 남아 있을 수 있습니다.

  • 큐브의 데이터를 Project 합니다.

    큐브는 큐브가 다시 빌드될 때까지 큐브에 남아 있으며, 이때 웨어하우스 컨트롤러 서비스가 Azure DevOps 데이터베이스에서 삭제 된 모든 기록 빌드 데이터를 제거 합니다. Project

  • 빌드 저장 파일 및 폴더 입니다.

    빌드 프로세스 중에 빌드 이진 파일, 빌드 로그 파일 및 테스트 결과가 포함된 로그 파일이 게시됩니다.

    이러한 파일의 위치는 삭제되지 않습니다. 이러한 파일을 제거하려면 수동으로 제거해야 합니다.

  • 공유 되는 작업 항목 추적 메타 데이터 입니다.

    TFSDeleteProject는 프로젝트 간에 공유 되는 작업 항목 추적에 대 한 메타 데이터를 삭제 하지 않습니다.

  • 공유 코드를 포함 하는 버전 제어 보류 집합.

    보류 집합에 여러 프로젝트의 코드가 있는 경우 버전 제어 보류 집합은 삭제 되지 않습니다.

프로젝트 삭제 확인

프로젝트 노드가 팀 탐색기에 더 이상 나타나지 않고 프로젝트 포털 웹 사이트와 보고서 폴더가 더 이상 존재 하지 않는지 확인 하 여 프로젝트 삭제가 성공 했는지 확인할 수 있습니다.

  1. 팀 탐색기를 열고 프로젝트가 프로젝트 노드로 나타나지 않는지 확인 합니다.

  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. 확인을 선택하여 프로젝트에 대한 보고서 폴더를 삭제할 것인지 확인합니다.

  8. 삭제된 프로젝트의 프로젝트 포털 웹 사이트를 제거하려면 Microsoft 웹 사이트에서 다음 페이지를 참조하세요.

Windows SharePoint Services 사이트 만들기, 편집 및 삭제

시간제한 기간 늘리기

기본적으로 구성 요소를 삭제하기 위해 TFSDeleteProject 명령이 발행하는 각 웹 서비스 호출은 10분 이내에 완료되어야 합니다. 6개의 호출이 있을 경우 프로세스에 최대 1시간이 걸릴 수 있습니다. 대량의 데이터와 연결된 프로젝트를 삭제하려는 경우 이 시간제한 기간을 일시적으로 늘릴 수 있습니다.

참고

시간 제한 기간을 늘리면 변경 내용이 모든 웹 서비스 호출에 영향을 미칩니다. 일반적으로 웹 서비스 호출로 인해 서버 성능이 저하되고 사용자가 오랜 시간 동안 사용자 인터페이스를 사용할 수 없도록 잠기는 것을 방지하기 위해 시간 제한 기간을 10분 내로 유지하는 것이 좋습니다. 따라서 프로젝트를 성공적으로 삭제한 후에는 시간 제한 기간을 다시 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의 Azure DevOps Server AdventureWorks1 서버에서 프로젝트 StoreFront와 연결된 모든 구성 요소를 팀 탐색기 제거합니다.

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