パッケージ化と公開の拡張機能

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

拡張機能開発したら、パッケージ化して Visual Studio Marketplace発行できます。 Marketplace は、Microsoft のプライベートおよびパブリック拡張機能、統合、およびその他のオファーのグローバル リポジトリです。

Note

拡張機能のマニフェスト ファイルで使用できる探索プロパティの詳細については、「拡張機能マニフェスト リファレンス」を参照してください

前提条件

Marketplace に発行する前に、次の要件の一覧を満たす必要があります。

  • 拡張機能パッケージ ツール (TFX) をインストールします。 コマンド プロンプトから npm install -g tfx-cli を実行します。
  • アイコン、ロゴ、スクリーンショットなどの画像を使用するための適切なアクセス許可が付与されていることを確認します。
  • Marketplace に登録情報を記述する完全な overview.md ファイルを含めます。
  • 拡張機能のアイコンを含めます。サイズは 128 x 128 ピクセル以上です。
  • Microsoft 製品を参照する場合は、Azure DevOps や AzDO などの省略形の代わりに完全な名前を使用します。その他の省略形も使用します。
  • 拡張機能の名前にブランド名を使用しないようにします。

発行元の作成

Microsoft の拡張機能を含むすべての拡張機能と統合には、パブリッシャーがいます。 誰でもパブリッシャーを作成し、その下に拡張機能を発行できます。 また、チームが拡張機能を開発している場合は、他のユーザーにパブリッシャーへのアクセス権を付与することもできます。

ユーザーはパブリッシャー (通常は発行元を作成したユーザー) を所有します。 パブリッシャーを他のユーザーと共有することもできます。

  1. Visual Studio Marketplace 発行ポータルに サインインします

  2. 既存のパブリッシャーのメンバーでない場合は、 + パブリッシャーを作成します。 [発行元名] フィールドに名前を入力します。 ID フィールドは、入力した名前に基づいて自動的に設定されます。

    強調表示されたボタン [Create publisher]\(パブリッシャーの作成\) を示すスクリーンショット。

    Note

    拡張機能のマニフェスト ファイルで設定する必要があるため、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
    

Note

拡張機能/統合のバージョンは、更新するたびにインクリメントする必要があります。
マニフェストで拡張機能/統合をインクリメントしていない場合は、コマンド ライン スイッチを --rev-version 渡す必要があります。 これにより、拡張機能の パッチ バージョン番号がインクリメントされ、新しいバージョンがマニフェストに保存されます。

パッケージ のサイズを確認する

パッケージ化された vsix のサイズを確認します。 50 MB (メガバイト)を超える場合は、最適化する必要があります。 これを行うには、次の考慮事項を参照してください。

  • 共通の依存関係 (ある場合) を拡張パッケージに 1 回指定して重複除去します。
  • パッケージ内で提供するのではなく、実行時またはインストール時にフェッチします。 実行時にツールの依存関係をプルするには、ツール インストーラー ライブラリを使用することを検討してください。 lib を使用すると、ツールがバージョン別にキャッシュされるという利点があるため、プライベート エージェントの場合、すべてのビルドがダウンロードされるわけではありません。 ツール インストーラー タスクの外部で使用できるように、ライブラリにしました。 ただし、タスクは切断されたシナリオ (インターネットなし) では機能しません。これは、タスクの説明/ドキュメントに含まれている必要があります。
  • 一部のユーザーは、タスクの依存関係を揺るがすツリーへの WebPack の成功を持っています。

拡張機能の公開

拡張機能がパッケージ化されたら、パブリッシャーの下の Marketplace にアップロードできます。 拡張機能のマニフェスト ファイル指定された識別子はpublisher、拡張機能がアップロードされる発行元の識別子と一致している必要があります。

  1. 管理ポータルから、ページの上部にあるドロップダウン メニューから発行元を選択します。

  2. [新しい拡張機能>の Azure DevOps] を選択します。

    [新しい拡張機能] ドロップダウン メニューと [Azure DevOps] の選択が強調表示されているスクリーンショット。

  3. ファイルをドラッグ アンド ドロップするか選択して、前のパッケージ化手順で作成した VSIX ファイルを見つけて、[アップロード] を選択します

    Azure DevOps の新しい拡張機能のアップロードを示すスクリーンショット。

    クイック検証の後、公開されている拡張機能の一覧に拡張機能が表示されます。 心配しないでください。拡張機能はユーザーにのみ表示されます。

    公開された拡張機能の一覧に拡張機能を示すスクリーンショット。

この時点で、拡張機能はどのアカウントにも表示されず、共有するまでインストールできません。

Note

Microsoft は、公開された新規および更新された拡張機能パッケージごとにウイルス スキャンを実行します。 スキャンがすべてクリアされるまで、一般向けの拡張機能は Marketplace に公開されません。 これにより、Marketplace ページに不適切なコンテンツや不快なコンテンツが表示されるのを防ぐことができます。

拡張機能を共有する

Azure DevOps にインストールする前に、拡張機能を組織と共有する必要があります。 拡張機能を共有するには、次のタスクを実行します。

  1. Marketplace 管理ポータルで、一覧から拡張機能を選択し、右クリックし、拡張機能に応じて [共有/共有解除] または [発行/発行解除] を選択します。

    メニューの選択、[共有]、[共有解除] のスクリーンショット。

  2. [組織] を選択し、組織の名前を入力します。 [Enter] を選択します。

    Enter ボタンのスクリーンショット。

  3. パネルを閉じます。

拡張機能をこの組織にインストールできるようになりました。

拡張機能をインストールする

共有拡張機能をインストールするには、次の手順を実行します。

  1. Marketplace で拡張機能を選択し、概要ページを開きます。

    [概要] ページのスクリーンショット。

    Note

    拡張機能はプライベートであるため、自分と共有している組織のメンバーのみがこのページを表示できます。

  2. [無料で入手] を選択して、インストール プロセスを開始します。 ドロップダウン メニューから拡張機能を共有した組織を選択します。

    拡張機能のインストール ダイアログを示すスクリーンショット。

  3. [インストール] を選択します。

お疲れさまでした。 拡張機能を組織にインストールし、試す準備ができました。

拡張機能を試す

  1. インストール ウィザードの最後で [組織に進む] を選択して、拡張機能がインストールされた組織のホーム ページ (https://dev.azure.com/{organization}) に移動します。

  2. ブラウザーを更新します。

  3. 組織の設定を開き、[拡張機能] を選択します。

    [組織の設定] の [拡張機能] ページのスクリーンショット。

[インストール済み] タブに 新しい拡張機能が表示されます

拡張機能をデバッグする

Visual Studio またはブラウザー開発者ツールを使用して拡張機能をデバッグするには、プロパティを追加してマニフェストを baseUri 変更します。 このアクションにより、ソース コードを変更するたびに拡張機能を再デプロイする必要なく、開発が高速化されます。

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

マニフェストを変更すると、ローカル Web サーバー インスタンスから拡張機能が読み込まれます。 たとえば、Visual Studio の II Standard Edition xpress などです。 マニフェストを変更した後、このデバッグ拡張機能を 1 回だけデプロイしてインストールします。

Note

Azure DevOps では Web ページがセキュリティで保護されたソースから提供されることを要求するため、ローカル Web サーバーを SSL モードで実行します。 それ以外の場合は、拡張機能 IFRAME の読み込み中にブラウザー コンソールでエラーが発生します。

拡張機能を更新する

既に公開されている拡張機能を変更するには、拡張機能を更新します。

ヒント

削除と再アップロードよりも拡張機能を更新することをお勧めします。 また、 publisher.extensionpublisher.extension-devたとえば、2 つの拡張機能を使用することをお勧めします。 Publisher.extension は Marketplace で公開されており、お客様は Azure DevOps 組織にインストールできます。 Publisher.extension-dev は Marketplace で非公開に保持され、自分が所有および管理する組織と共有できます。 拡張機能のソース コードの 2 つのコピーをメインする必要はありません。 2 つのマニフェスト ファイルメイン含めることができます。拡張機能ごとに 1 つ、拡張機能のパッケージ化中に、それぞれのマニフェスト ファイルを 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 拡張機能の発行元には適用されません。

トップ パブリッシャー バッジのスクリーンショット。

トップ パブリッシャー プログラムは、模範的なポリシー、品質、信頼性、サポートを通じて、顧客と Marketplace に対するコミットメントを持つパブリッシャーを認識します。 トップ パブリッシャーになると、すべてのパブリック オファリングにトップ パブリッシャー バッジが表示されます。

パブリッシャーの上位要件

Marketplace のトップ パブリッシャー プログラムは、Azure DevOps 拡張機能と統合を自信を持って評価または取得できるように設計されています。 トップ パブリッシャー バッジは、発行元が模範的なポリシー、品質、信頼性、サポートを通じて顧客と Marketplace へのコミットメントを示していることを意味します。 これは、1 つ以上のグローバル Azure DevOps 拡張機能または統合を持つパブリッシャー向けであり、Visual Studio IDE および Visual Studio Code 拡張機能の発行元には適用されません。

Marketplace では、次のパラメーターでパブリッシャーを慎重に確認した後、バッジがパブリッシャーに割り当てられます。

  • プライバシー ポリシー
  • ライセンス ポリシー
  • サポート ポリシー
  • ドキュメント
  • Q と応答性
  • オファリングの評価とレビュー
  • アクティブな取り込みとオファリングのインストール数
  • パブリッシャーから少なくとも 1 つのパブリック Azure DevOps 拡張機能を管理します。
  • パブリック拡張機能には 5,000 を超えるインストールが必要であり、アクティブなインストール数は 1,000 を超えています。

トップ パブリッシャーから拡張機能を入手すると、タイムリーなサポートと全体的なエクスペリエンスが期待できます。 トップ パブリッシャーのオファリングを確認します。

オファリングにポリシーを追加する方法の詳細については、拡張機能マニフェスト参照してください。

  1. 発行元プロファイルを更新します。

    パブリッシャー プロファイルを使用すると、すべてのオファリングを 1 か所で、主な発行元関連情報と共に紹介できます。 プロファイルに表示される情報を指定するには、次の手順を実行します。

    a. Visual Studio Marketplace で https://marketplace.visualstudio.com/manage/publishers オファリングを発行および管理するアカウントを使用してサインインします。

    b. 発行元を選択し、[詳細] タブの [ユーザー情報] セクションに入力します。Microsoft パブリッシャー向けのセクションのスクリーンショット。 c。 変更を保存し、[プロファイルの表示] を選択して、コンシューマーにどのように表示されるかを確認します。 このプロファイル ページを使用して、オファリングを伝道できます。

Note

このプログラムを通じて、認定を受けているのは発行元です。 これは、拡張機能と統合のソフトウェアやセキュリティには対応していません。 発行元からのオファリングを 評価するときは、安全性情報 に注意することをお勧めします。

トップ パブリッシャーから拡張機能を入手し、エクスペリエンスに満足できない場合は、最初にパブリッシャーと連携することを検討してください。 その後、まだ満足できない場合は、 Marketplace チームにお問い合わせください。

トップ パブリッシャーに適用する

  1. Marketplace で https://marketplace.visualstudio.com/manage/publishers オファリングを発行および管理するアカウントを使用してサインインします
  2. パブリッシャーを選択し、[トップ パブリッシャー] タブに移動します。注: タブを表示するには、1 つ以上のグローバル Azure DevOps (サーバー/サービス) 拡張機能または統合が必要です。
  3. 前述の要件の一部を満たし、発行元の所有者である場合は、プログラムに申請するオプションが表示されます。 アプリケーションでは、ケースを確認するために Marketplace チームに電子メールが送信されます。 10 営業日以内に次の手順で回答し、質問を明確にするか、バッジを付与します。

チームは、バッジを付与する前に、オファリングのアクティブな取り込み、インストール/開始回数、オファリング全体の評価とレビューなど、他のパラメーターを確認する可能性があります。 Microsoft は、トップ パブリッシャー バッジをいつでも許可、拒否、または取り消す権利を留保します。

パブリッシャーがトップ パブリッシャーになったら、今後のすべての更新プログラムとオファリングが、前述の要件を満たす必要があります。

Marketplace 拡張機能のレビューに応答する

Visual Studio Marketplace で拡張機能に対して顧客が残したレビューに応答できます。 所有者、作成者、共同作成者のいずれかのアクセス許可がある場合は、レビューの横にある [返信] を見つけて選択します。

応答は 1 つだけ残すことができます。 レビューをサポート フォーラムとして使用しないでください。 詳細が必要な場合は、校閲者が連絡するためのサポート エイリアスを指定してください。 その後、問題を外部で解決し、解決策を使用して返信を更新できます。

発行元の応答のガイドライン

Visual Studio Marketplace は、お客様が拡張機能を見つけ、試し、インストールし、確認するのに役立つ、オープンで招待的で、敬意を払い、役立つ場所のままにします。 コミュニケーションは、健全なコミュニティを維持する上で重要な役割を果たします。 この環境の作成に役立つ、顧客レビューに応答する発行元向けのガイドラインを次に示します。 顧客との対話について深く考え、Marketplace が作成しようとしているカスタマー エクスペリエンスの精神を振り返ります。

  • レビューは、顧客のコメント用に予約されています。 [返信のみ] を使用してレビューに返信します。
  • レビューは顧客の意見を共有するためのものなので 、すべての意見が有効です。 お客様は自分の意見を受け取る権利があるため、議論、批判、または議論なしで、コメントをフィードバックとして尊重して扱います。
  • 回答が価値を高め、顧客のコメントに関連していることを確認します。
  • 質問や問題に正確に対処することに重点を置きます。 詳細が必要な場合は、顧客にメールで連絡するように依頼し、レビューで話し合います。 問題を解決したら、解決策を使用して返信を更新します。 顧客がレビューを編集できるのと同じように、返信を編集できます。
  • スパム、虐待的、不快なコンテンツなどの不適切なレビューに遭遇した場合は、レビューにフラグを付けます。

レビューを無効にする要求

発行元は、報告された問題が Marketplace または基になるプラットフォームが原因である場合は、レビューを無効にするよう訴えることができます。 問題が有効な場合、Marketplace 管理者は評価を無効にします。 拡張機能ハブ ページの [評価とレビュー] セクションからアピールできます

拡張機能の発行を取り消す

無料の拡張機能を Marketplace で提供しなくなった場合は、発行を取り消すことができます。

次のシナリオでは、Marketplace から拡張機能を削除する場合について説明します。

  • 別の拡張機能を開発し、現在の拡張機能を提供する必要がなくなりました。
  • 拡張機能に問題があるため、問題を解決するまで Marketplace から拡張機能を削除する必要があります。
  • 間違って拡張機能をパブリックとして公開しました。

拡張機能を非公開または削除するには、特定の条件を満たす必要があります。

アクション 要件
発行の取り消し 無料の拡張機能のみが公開されていない可能性があります。
削除 拡張機能を削除するには、 ゼロ (0) のインストールが必要です。

重要

法的またはセキュリティの問題が原因で拡張機能を削除する必要がある場合は、Marketplace チームにお問い合わせください。 要求を確認し、拡張機能を手動で削除します。

  1. 発行元ページで拡張機能を選択し、メニューの [発行を取り消す] を選択します。

    拡張機能は Marketplace から直ちに非公開になり、新しいユーザーはそれをインストールできません。 拡張機能の評価とレビューはそのまま残ります。

Marketplace で拡張機能をもう一度提供するには、メニューの [発行] を選択します。

また、拡張機能にゼロ (0) のインストールがある場合は、Marketplace から拡張機能を完全に削除することもできます。 これを行うには、メニューの [削除] を選択します。 この削除操作は元に戻すことができません。