확장 패키지 및 게시

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

확장을 개발한 후에는 Visual Studio Marketplace패키지하고 게시할 수 있습니다. Marketplace는 Microsoft의 프라이빗 및 퍼블릭 확장, 통합 및 기타 제품을 위한 글로벌 리포지토리입니다.

참고 항목

확장명 매니페스트 파일에서 사용할 수 있는 검색 속성에 대한 자세한 내용은 확장명 매니페스트 참조참조하세요.

필수 조건

Marketplace에 게시하기 전에 다음 요구 사항 목록을 충족해야 합니다.

  • TFX(확장 패키징 도구)를 설치합니다. 명령 프롬프트에서 npm install -g tfx-cli를 실행합니다.
  • 아이콘, 로고, 스크린샷 등과 같은 이미지를 사용할 수 있는 적절한 권한이 부여되었는지 확인합니다.
  • Marketplace에서 목록을 설명하는 철저한 overview.md 파일을 포함합니다.
  • 128x128픽셀 이상의 확장 아이콘을 포함합니다.
  • Microsoft 제품을 참조하는 경우 약어 대신 전체 이름(예: Azure DevOps 및 AzDO 또는 기타 약어)을 사용합니다.
  • 확장 이름에 브랜드 이름을 사용하지 않도록 합니다.

게시자 만들기

Microsoft의 확장을 비롯한 모든 확장 및 통합에는 게시자가 있습니다. 누구나 게시자를 만들고 그 아래에 확장을 게시할 수 있습니다. 팀이 확장을 개발하는 경우 다른 사용자에게 게시자에 대한 액세스 권한을 부여할 수도 있습니다.

사용자는 게시자(일반적으로 게시자를 만든 사용자)를 소유합니다. 게시자를 다른 사용자와 공유할 수도 있습니다.

  1. Visual Studio Marketplace 게시 포털에 로그인합니다.

  2. 기존 게시자의 구성원이 아닌 경우 + 게시 자를 만듭니다. 게시자 이름 필드에 이름을 입력합니다. 입력한 이름에 따라 ID 필드가 자동으로 설정됩니다.

    강조 표시된 단추인 게시자 만들기를 보여 주는 스크린샷

    참고 항목

    확장의 매니페스트 파일에서 ID를 설정해야 하므로 ID를 기록해 둡니다.

    게시자를 만들라는 메시지가 표시되지 않으면 페이지 아래쪽으로 스크롤하여 관련 사이트 아래에 있는 확장 게시를 선택합니다.

    • 게시자에 대한 식별자를 지정합니다. 예를 들면 다음과 mycompany-myteam같습니다. 이 식별자는 확장 매니페스트 파일의 publisher 특성 값으로 사용됩니다.
    • 게시자의 표시 이름을 지정합니다. 예를 들면 다음과 같습니다. My Team
  3. Marketplace 게시자 계약을 검토한 다음 만들기를 선택합니다.

    확장용 게시자 만들기

게시자가 만들어지면 항목을 관리하라는 지시가 있지만 항목은 없습니다.

확장을 패키지합니다.

확장을 업로드하려면 VSIX 2.0 호환 .vsix 파일로 패키지해야 합니다. Microsoft는 확장을 패키지하고 게시하는 플랫폼 간 CLI(명령줄 인터페이스)를 제공합니다.

  1. 확장 매니페스트 파일(vss-extension.json)을 열고 필드 값을 게시자의 publisher ID로 설정합니다. 예시:

    {
        ...
        "id": "my-first-extension",
        "publisher": "AnnetteNielsen",
        ...
    }
    
  2. 명령 프롬프트에서 확장 디렉터리에서 TFX 도구의 패키징 명령을 실행합니다.

    npx tfx-cli extension create
    

    확장이 성공적으로 패키지되었음을 나타내는 메시지가 표시됩니다.

    === Completed operation: create extension ===
    - VSIX: C:\my-first-extension\AnnetteNielsen.my-first-extension-1.0.0.vsix
    - Extension ID: my-first-extension
    - Extension Version: 1.0.0
    - Publisher: AnnetteNielsen
    

참고 항목

확장/통합의 버전은 모든 업데이트에서 증가해야 합니다.
매니페스트에서 확장/통합을 증가하지 않은 경우 명령줄 스위치를 --rev-version 전달해야 합니다. 이렇게 하면 확장의 패치 버전 번호가 증가하고 새 버전이 매니페스트에 저장됩니다.

패키지 크기 확인

패키지된 후 vsix의 크기를 확인합니다. 50MB보다 큰 경우 최적화해야 합니다. 이렇게 하려면 다음 고려 사항을 참조하세요.

  • 확장 패키지에 한 번 표시하여 일반적인 종속성을 중복 제거합니다(있는 경우).
  • 패키지 내에서 제공하는 대신 런타임 또는 설치 시간 동안 항목을 가져옵니다. 도구 설치 관리자 lib를 사용하여 런타임에 도구 종속성을 끌어오는 것이 좋습니다. lib를 사용하면 도구가 버전별로 캐시되므로 프라이빗 에이전트의 경우 모든 빌드를 다운로드하지 않는 이점이 있습니다. 도구 설치 관리자 작업 외부에서 사용할 수 있도록 라이브러리로 만들었습니다. 그러나 작업이 연결이 끊긴 시나리오(인터넷 없음)에서 작동하지 않습니다. 이 시나리오는 작업에 대한 설명/문서에 있어야 합니다.
  • 일부 사용자는 WebPack을 사용하여 작업에 대한 종속성을 흔들어 트리에 성공합니다.

확장 게시

확장이 패키지되면 게시자에서 Marketplace에 업로드할 수 있습니다. publisher 확장의 매니페스트 파일에 지정된 식별자는 확장이 업로드된 게시자의 식별자와 일치해야 합니다.

  1. 관리 포털페이지 맨 위에 있는 드롭다운 메뉴에서 게시자를 선택합니다.

  2. 새 확장>Azure DevOps를 선택합니다.

    새 확장 드롭다운 메뉴와 강조 표시된 Azure DevOps 선택을 보여 주는 스크린샷

  3. 파일을 끌어서 놓거나 선택하여 이전 패키징 단계에서 만든 VSIX 파일을 찾은 다음 업로드를 선택합니다.

    Azure DevOps에 대한 새 확장 업로드를 보여 주는 스크린샷

    빠른 유효성 검사 후에 확장이 게시된 확장 목록에 표시됩니다. 확장은 사용자에게만 표시됩니다.

    게시된 확장 목록의 확장을 보여 주는 스크린샷

이 시점에서 확장은 계정에 표시되지 않으며 공유할 때까지 설치할 수 없습니다.

참고 항목

Microsoft는 게시된 각각의 신규 및 업데이트된 확장 패키지에 대해 바이러스 검사를 실행합니다. 검색이 모두 명확할 때까지는 공용 사용을 위해 Marketplace에 확장을 게시하지 않습니다. 이러한 방식으로 Marketplace 페이지에서 부적절하거나 불쾌한 콘텐츠가 표시되는 것을 방지합니다.

확장 공유

Azure DevOps에 확장을 설치하려면 먼저 조직과 확장을 공유해야 합니다. 확장을 공유하려면 다음 작업을 수행합니다.

  1. Marketplace 관리 포털에서 목록에서 확장을 선택하고 마우스 오른쪽 단추를 클릭한 다음 확장에 따라 공유/공유 취소 또는 게시/게시 취소를 선택합니다.

    메뉴 선택, 공유/공유 해제 스크린샷

  2. 조직을 선택한 다음 조직의 이름을 입력합니다. Enter를 선택합니다.

    Enter 단추의 스크린샷.

  3. 패널을 닫습니다.

이제 확장을 이 조직에 설치할 수 있습니다.

확장 설치

공유 확장을 설치하려면 다음 단계를 수행합니다.

  1. Marketplace에서 확장을 선택하여 개요 페이지를 엽니다.

    개요 페이지의 스크린샷.

    참고 항목

    확장은 비공개이므로 사용자와 공유된 조직의 구성원만 이 페이지를 볼 수 있습니다.

  2. 설치 프로세스를 시작하려면 무료로 가져오기를 선택합니다. 드롭다운 메뉴에서 확장을 공유한 조직을 선택합니다.

    확장 설치 대화 상자를 보여 주는 스크린샷

  3. 설치를 선택합니다.

축하합니다! 조직에 확장을 설치했으며 사용할 준비가 된 것입니다.

확장 시도

  1. 설치 마법사가 끝날 때 조직으로 진행을 선택하여 확장이 설치된 조직의 홈페이지(https://dev.azure.com/{organization})로 이동합니다.

  2. 브라우저를 새로 고칩니다.

  3. 조직 설정을다음 확장을 선택합니다.

    조직 설정, 확장 페이지의 스크린샷.

설치된 탭에 새 확장이 표시됩니다.

확장 디버그

Visual Studio 또는 브라우저 개발자 도구를 사용하여 확장을 디버그하려면 속성을 추가하여 매니페스트를 변경합니다 baseUri . 이 작업은 소스 코드를 변경할 때마다 확장을 다시 배포할 필요 없이 개발 속도를 향상합니다.

{
    ...
    "baseUri": "https://localhost:44300",
    ...
}

매니페스트를 변경하면 로컬 웹 서버 인스턴스에서 확장이 로드됩니다. 예를 들어 Visual Studio의 IISExpress입니다. 매니페스트를 변경한 후 이 디버깅 확장을 한 번만 배포하고 설치합니다.

참고 항목

Azure DevOps는 웹 페이지를 보안 원본에서 제공해야 하므로 SSL 모드에서 로컬 웹 서버를 실행합니다. 그렇지 않으면 확장 IFRAME을 로드하는 동안 브라우저 콘솔에서 오류가 발생합니다.

확장 업데이트

이미 게시된 확장을 변경하려면 업데이트합니다.

제거 및 다시 업로드를 통해 확장을 업데이트하는 것이 좋습니다. 예를 들어 publisher.extensionpublisher.extension-dev두 개의 확장도 사용하는 것이 좋습니다. Publisher.extension 는 고객이 Azure DevOps 조직에 설치할 수 있는 Marketplace에서 공개됩니다. Publisher.extension-dev 는 Marketplace에서 비공개로 유지되며 사용자가 소유하고 제어하는 조직과 공유할 수 있습니다. 확장의 소스 코드 복사본 2개를 기본 필요가 없습니다. 각 확장에 대해 하나씩, 확장을 패키징하는 동안 tfx-cli 도구에 해당 매니페스트 파일을 제공할 수 있는 두 개의 매니페스트 파일을 기본 수 있습니다. 도구에 필요한 인수에 대한 자세한 내용은 TFX 확장 명령을 참조 하세요.

  1. 표시된 항목 목록에서 확장을 선택합니다.
  2. 예를 들어 마우스 오른쪽 단추를 클릭하고 업데이트를publisher.extension-dev선택합니다.
  3. 확장의 유효성을 검사합니다.
  4. 예를 들어 프로덕션 버전을 publisher.extension동일하게 업데이트합니다.
  5. 확장에 대한 .vsix로 이동하여 업로드합니다.

확장의 업데이트된 버전은 이미 설치된 계정에 자동으로 설치됩니다. 나중에 확장이 설치된 새 계정도 최신 버전을 받습니다.

확장을 공개로 만들기

Marketplace에 대한 확장 또는 통합을 개발하는 동안 비공개로 유지합니다. 확장을 공개적으로 사용할 수 있도록 하려면 매니페스트에서 공용 플래그true 설정합니다.

자격

Marketplace에 공개 목록을 만들려면 통합 또는 확장이 다음 자격을 충족해야 합니다.

  • Azure DevOps와 함께 작동하거나 확장합니다.
  • 사용자 또는 회사, 소유, 개발 및 통합 또는 확장을 배포하고 보급할 수 있는 라이선스가 부여됩니다.
  • 확장 또는 통합은 적극적으로 기본.

Microsoft는 데모를 요청하고 Marketplace 항목에 대해 계획된 콘텐츠를 검토할 수도 있습니다.

상위 게시자

상위 게시자 프로그램은 Azure DevOps 확장 또는 통합이 있는 게시자에만 사용할 수 있습니다. Visual Studio IDE 및 Visual Studio Code 확장 게시자에는 적용되지 않습니다.

상위 게시자 배지의 스크린샷.

Top Publisher 프로그램은 모범적인 정책, 품질, 안정성 및 지원을 통해 고객과 Marketplace에 대한 헌신으로 게시자를 인식합니다. 상위 게시자가 되면 모든 퍼블릭 제품에 상위 게시자 배지가 표시됩니다.

상위 게시자 요구 사항

Marketplace의 상위 게시자 프로그램은 Azure DevOps 확장 및 통합을 자신 있게 평가하거나 획득하는 데 도움이 되도록 설계되었습니다. 상위 게시자 배지는 게시자가 모범적인 정책, 품질, 안정성 및 지원을 통해 고객과 Marketplace에 대한 헌신을 표시한다는 것을 의미합니다. 하나 이상의 글로벌 Azure DevOps 확장 또는 통합이 있는 게시자를 위한 것이며 Visual Studio IDE 및 Visual Studio Code 확장 게시자에는 적용되지 않습니다.

Marketplace는 다음 매개 변수에서 게시자를 신중하게 검토한 후 게시자에 배지를 할당합니다.

  • 개인 정보 보호 정책
  • 라이선스 정책
  • 지원 정책
  • 설명서
  • Q 및 응답성
  • 해당 제품에 대한 등급 및 검토
  • 해당 제품에 대한 활성 흡수 및 설치 수
  • 게시자에서 하나 이상의 공용 Azure DevOps 확장을 관리합니다.
  • 퍼블릭 확장에는 5,000개 이상의 설치가 있어야 하며 활성 설치 수는 1000을 초과합니다.

Top Publisher에서 확장을 받을 때 적시에 지원되고 전체적인 환경이 좋을 수 있습니다. 상위 게시자의 제품을 확인하세요.

제품에 정책을 추가하는 방법에 대한 자세한 내용은 확장 매니페스트참조하세요.

  1. 게시자 프로필을 업데이트합니다.

    게시자 프로필을 통해 모든 제품을 주요 게시자 관련 정보와 함께 한 곳에서 소개할 수 있습니다. 프로필에 표시되는 정보를 제공하려면 다음 단계를 수행합니다.

    a. Visual Studio Marketplace에서 https://marketplace.visualstudio.com/manage/publishers 제품을 게시하고 관리하는 계정을 사용하여 로그인합니다.

    b. 게시자를 선택하고 세부 정보 탭에서 정보 섹션을 완료합니다.Microsoft 게시자에 대한 섹션의 스크린샷. C. 변경 내용을 저장하고 프로필 보기를 선택하여 소비자에게 표시되는 방식을 확인합니다. 이 프로필 페이지를 사용하여 제품을 전파할 수 있습니다.

참고 항목

이 프로그램을 통해 인증을 받고 있는 게시자입니다. 이는 해당 확장 및 통합의 소프트웨어 또는 보안을 다루지 않습니다. 게시자의 제품을 평가할 때 안전 정보를 인식하는 것이 좋습니다.

Top Publisher에서 확장이 있고 환경에 만족하지 않는 경우 먼저 게시자와 협력하는 것이 좋습니다. 그 후 여전히 만족스럽 지 않은 경우 Marketplace 팀에 문의하세요.

상위 게시자로 적용

  1. Marketplace에서 https://marketplace.visualstudio.com/manage/publishers 제품을 게시하고 관리하는 계정을 사용하여 로그인합니다.
  2. 게시자를 선택하고 상위 게시자 탭으로 이동합니다. 참고: 탭을 표시하려면 하나 이상의 글로벌 Azure DevOps(서버/서비스) 확장 또는 통합이 있어야 합니다.
  3. 이전에 나열된 요구 사항의 일부를 충족하고 게시자의 소유자인 경우 프로그램에 신청할 수 있는 옵션이 표시됩니다. 애플리케이션에서 사례를 검토하기 위해 Marketplace 팀에 전자 메일이 전송됩니다. 영업일 기준 10일 이내에 다음 단계로 답변하여 질문을 명확히 하거나 배지를 부여합니다.

팀은 배지를 부여하기 전에 제품의 활성 흡수, 설치/시작 횟수 및 제품 전체의 등급 및 리뷰와 같은 다른 매개 변수를 살펴봅니다. Microsoft는 언제든지 Top Publisher 배지를 부여, 거부 또는 취소할 수 있는 권리를 보유합니다.

게시자가 상위 게시자가 되면 이후의 모든 업데이트 및 제품이 이전에 나열된 요구 사항을 충족해야 합니다.

Marketplace 확장 검토에 응답

고객이 Visual Studio Marketplace에서 확장을 위해 떠나는 리뷰에 응답할 수 있습니다. 소유자, 작성자 또는 기여자 권한 중 하나가 있는 경우 검토 옆에 있는 회신을 찾아 선택합니다.

하나의 응답만 남길 수 있습니다. 검토를 지원 포럼으로 사용하지 않습니다. 자세한 내용이 필요한 경우 검토자가 연락할 수 있도록 지원 별칭을 제공하세요. 그런 다음 외부에서 문제를 해결하고 해결 방법으로 회신을 업데이트할 수 있습니다.

게시자 응답에 대한 지침

Visual Studio Marketplace는 고객이 확장을 찾고, 시도하고, 설치하고, 검토할 수 있도록 개방적이고, 초대하고, 존중하고, 유용한 장소를 유지합니다. 커뮤니케이션은 건강한 커뮤니티를 유지하는 데 중요한 역할을 합니다. 이 환경을 만드는 데 도움이 되도록 고객 리뷰에 응답하는 게시자에 대한 지침은 다음과 같습니다. 고객 상호 작용에 대해 깊이 생각하고 Marketplace에서 만들려고 하는 고객 환경의 정신을 반영합니다.

  • 리뷰는 고객 의견을 위해 예약되어 있습니다. 회신을 사용하여 검토에 응답합니다.
  • 리뷰는 고객 의견을 공유하기 위한 것이므로 모든 의견이 유효합니다. 고객은 자신의 의견을 받을 권리가 있으므로 토론, 비판 또는 논쟁 없이 의견을 정중하게 피드백으로 취급합니다.
  • 응답이 가치를 더하고 고객의 의견과 관련이 있는지 확인합니다.
  • 질문 또는 문제를 정확하게 해결하는 데 집중합니다. 자세한 내용이 필요한 경우 고객에게 이메일을 통해 문의하고 리뷰에서 논의하도록 요청하세요. 문제를 해결하면 해결 방법으로 회신을 업데이트합니다. 고객이 리뷰를 편집할 수 있는 것처럼 회신을 편집할 수 있습니다.
  • 스팸, 학대 또는 모욕적인 콘텐츠와 같은 부적절한 리뷰가 있는 경우 모든 확장에 대해 해당 리뷰에 플래그를 지정합니다.

검토를 무효화하도록 요청

게시자는 보고된 문제가 Marketplace 또는 기본 플랫폼 때문인 경우 검토를 무효화하도록 호소할 수 있습니다. 문제가 유효한 경우 Marketplace 관리자는 등급을 무효화합니다. 확장 허브 페이지의 등급 및 검토 섹션에서 이의를 제기할있습니다.

확장 게시 취소

Marketplace에서 더 이상 제공하지 않으려면 무료 확장을 게시 취소할 수 있습니다.

다음 시나리오에서는 Marketplace에서 확장을 제거하려는 경우에 대해 설명합니다.

  • 다른 확장을 개발했으며 더 이상 현재 확장을 제공하지 않습니다.
  • 확장에 문제가 있으므로 문제를 해결할 때까지 Marketplace에서 확장을 제거하려고 합니다.
  • 실수로 확장을 공용으로 게시했습니다.

확장을 게시 취소하거나 제거하려면 특정 조건을 충족해야 합니다.

작업 요구 사항
게시 취소 무료 확장게시되지 않을 수 있습니다.
Remove 확장을 제거하려면 0(0) 설치가 있어야 합니다.

Important

법적 또는 보안 문제로 인해 확장을 제거해야 하는 경우 Marketplace 팀에 문의하세요. 요청을 검토하고 확장을 수동으로 삭제합니다.

  1. 게시자 페이지에서 확장을 선택하고 메뉴에서 게시 취소를 선택합니다.

    확장은 Marketplace에서 즉시 게시되지 않으며 새 사용자는 설치할 수 없습니다. 확장에 대한 평점 및 리뷰는 그대로 유지됩니다.

Marketplace에서 확장을 다시 제공하려면 메뉴에서 게시를 선택합니다.

확장에 0이 설치되어 있는 경우 Marketplace에서 확장을 완전히 제거하도록 선택할 수도 있습니다. 이렇게 하려면 메뉴에서 제거를 선택합니다. 이 작업은 취소할 수 없습니다.