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(x86)%를%programfiles%로 대체합니다.

사전 요구 사항

TFSDeleteProject 명령을 사용하려면 Team Foundation 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는 프로젝트 데이터를 제거하기 위해 다음 단계를 자동으로 수행합니다.

  1. TFSDeleteProject는 삭제 후보인 모든 구성 요소의 인벤토리를 만듭니다.

    여기에는 테스트 관리자, Team Foundation Build 및 Team Foundation 버전 제어와 통합되는 구성 요소가 포함됩니다.

  2. TFSDeleteProject는 팀 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가 성공적으로 완료된 후에도 다음 데이터가 배포에 남아 있을 수 있습니다.

  • 큐브의 프로젝트 데이터입니다.

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

  • 삭제 파일 및 폴더를 빌드합니다.

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

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

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

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

  • 공유 코드를 포함하는 버전 제어 선반.

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

프로젝트 삭제 확인

프로젝트 노드가 팀 Explorer 더 이상 표시되지 않고 프로젝트 포털 웹 사이트 및 보고서 폴더가 더 이상 존재하지 않는지 확인하여 프로젝트 삭제의 성공을 확인할 수 있습니다.

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

  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 및 Team Explorer Azure DevOps Server AdventureWorks1 서버에서 프로젝트 StoreFront와 연결된 모든 구성 요소를 제거합니다.

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