封裝和發佈擴展件

Azure DevOps 服務 |Azure DevOps Server |Azure DevOps Server 2022

開發好擴充功能後,打包並發佈到 Visual Studio Marketplace。 The Marketplace 是 Microsoft 私有與公開擴充功能、整合及其他優惠的全球資料庫。

注意

如需延伸模組指令清單檔案中可用之探索屬性的資訊,以協助使用者探索及瞭解您的延伸模組,請參閱 延伸模組指令清單參考。

必要條件

發佈至 Marketplace 之前,必須先符合下列需求清單。

類別 需求
封裝工具 安裝擴充套件封裝工具(TFX)。 在命令提示字元中執行 npm install -g tfx-cli 。
影像許可權 請確定您有適當的許可權可以使用任何影像,例如圖示、標誌、螢幕快照等等。
Marketplace 概觀 包含一個詳細的 overview.md 檔案,以描述您在 Marketplace 中的項目。
擴充功能圖示 包含延伸模組的圖示,代表您的整合、公司或組織,大小至少為128x128像素(PNG或 JPEG)。
Microsoft產品名稱 針對Microsoft產品使用完整名稱(例如,Azure DevOps 而非 AzDO 或其他縮寫)。
品牌名稱 請勿在延伸模組的名稱中使用品牌名稱。

建立發行者

每個延伸模組或整合,包括來自Microsoft的擴充功能,都必須有發行者。 任何人都可以建立發行者,並在其下發佈延伸模組。 您也可以與其他使用者共享發行者存取權,例如您的開發小組。

  1. 登入 Visual Studio Marketplace 發佈入口網站。

  2. 如果您不是現有發行者的一部分,請選取 [+ 建立發行者]。
    輸入發行者名稱;標識元欄位會根據您的項目自動填入。

    顯示醒目提示按鈕 [建立發行者] 的螢幕快照。

    注意

    • 確保您的發行者名稱在多字節字符的16個字元內。
    • 儲存發行者識別碼—您需要它於延伸模組的指令清單檔案中。

    如果未提示您建立發行者,請卷動至 [相關網站] 底下的 [發佈延伸模組]。

    • 設定唯一的發行者識別碼,例如 mycompany-myteam。 將此數值用於您的 manifest 檔中的 publisher 屬性。
    • 設定顯示名稱,例如 My Team。
  3. 檢閱 Marketplace 發行者合約,然後選取 [建立]。

    創建擴充套件的發布者

建立發行者之後,您可以管理項目,但您發佈之前,項目不會顯示。

打包您的擴充套件

若要上傳您的延伸模組,請將它封裝為 VSIX 2.0 相容的 .vsix 檔案。 Microsoft提供跨平臺命令行介面 (CLI) 來封裝和發佈延伸模組。

  1. 開啟您的延伸模組指令清單檔案 (vss-extension.json),並將欄位的值 publisher 設定為發行者的標識碼。 例如:

    {
        ...
        "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 Switch 自動增加 補丁 版本號並存到你的清單。

檢查套件大小

若封裝 .vsix 超過 50 MB,請優化:

  • 消除重複依賴 — 在擴充套件中一次宣告共享依賴關係。
  • 執行時擷取 — 使用工具安裝程式庫在執行時取得相依性,而非打包。 此函式庫依版本快取工具於自架代理程式上。 在斷線(無網路)情況下無法使用,因此在文件中需注意此限制事項。
  • Tree-shake — 使用 Webpack 移除任務包中未使用的程式碼。

發佈擴充功能

封裝延伸模組之後,您可以將它上傳至發行者下的 Marketplace。 publisher擴充功能的清單檔中指定的識別碼必須與上傳擴充功能的發行者的識別碼相符。

  1. 從管理入口網站中,從頁面頂端的下拉功能表中選取您的發行者。

  2. 選擇 新增擴充功能>Azure DevOps。

    螢幕快照顯示「新增擴充套件」的下拉功能表及已選取的「Azure DevOps」。

  3. 拖放您的檔案,或選取它來尋找您在上一個封裝步驟中建立的 VSIX 檔案,然後選擇 [ 上傳]。

    此螢幕快照顯示上傳新的 Azure DevOps 擴充功能。

    快速驗證之後,您的延伸模組會出現在已發佈的延伸模塊清單中。 別擔心,這個擴充功能只有您可見。

    顯示已發行延伸模組清單中延伸模組的螢幕快照。

此時,任何帳戶都看不到您的擴充套件。 若要讓其他人看得見,您需要共用延伸模組。

注意

Microsoft在每個已發佈的新和更新的擴充套件上執行病毒掃描。 在掃描結果顯示無問題之前,我們不會在 Marketplace 中發佈擴充套件以供公共使用。 如此一來,我們也會避免在 Marketplace 頁面上呈現不適當的或冒犯性內容。

透過 OIDC Trusted Publishing 發布

Trusted Publishing 允許你從支援的 CI/CD 提供者發佈,且不會儲存長期存在的個人存取權杖(PAT)。 Visual Studio Marketplace 使用 OpenID Connect(OIDC)或 Microsoft Entra 工作負載身份聯盟來驗證發佈工作流程。

支援的 CI/CD 供應商

Provider Status 市集設定
GitHub Actions(GitHub 行動) Supported 在出版商的 Trusted Publishing 頁面建立政策。
Azure Pipelines Supported 使用由 Microsoft Entra 支援的工作負載身分同盟服務連線,並將其身分新增為 Publisher Contributor。 不需要 Marketplace 政策。

開始使用 GitHub Actions

  1. 登入 Visual Studio Marketplace 出版商管理入口網站。
  2. 打開你的發佈者並選擇 Trusted Publishing。
  3. 建立一個可信發佈政策,明確指出授權發佈你的擴充功能的 GitHub 倉庫和工作流程。 為了進一步限制存取權限,可以選擇性地將政策限制在特定的 GitHub 環境。
  4. 將你的 GitHub Actions 工作流程設定為使用 OIDC 發佈。 請依照你的擴充功能類型說明操作:

對於私有儲存庫,請在建立政策後 48 小時內執行已設定的工作流程。 首次成功的代幣交換會永久啟用該政策。

從 Azure Pipelines 發佈

Azure Pipelines 使用 Azure DevOps 服務連線搭配工作負載身份聯合,取代 Marketplace Trusted Publishing 政策:

  1. 設定一個使用 workload identity federation 的 Azure Pipelines 服務連線。
  2. 將服務主體或受控識別加入為您 Visual Studio Marketplace 發行者的成員,並賦予其參與者角色。
  3. 將發佈步驟設定為使用工作負載身份聯合服務連線。

共用您的擴充功能

在 Azure DevOps 中安裝擴充功能之前,請先與組織共用您的延伸模組。 若要共用延伸模組,請執行下列工作:

  1. 從 Marketplace 管理入口網站中,從清單中選取您的擴充功能,以滑鼠右鍵按兩下,然後選擇 [共用/取消共用] 或 [發佈/取消發佈],視擴充功能而定。

    選單選項[共用/取消共用] 的螢幕快照。

  2. 選取 [ 組織],然後輸入您組織的名稱。 選取 [輸入]。

    Enter 按鈕的螢幕快照。

  3. 關閉面板。

您的延伸模組現在可以安裝至此組織。

安裝您的延伸模組

若要安裝您的共用延伸模組,請執行下列步驟。

  1. 在 Marketplace 中,選取您的延伸模組以開啟其概觀頁面。

    [概觀] 頁面的螢幕快照。

    注意

    因為您的延伸模組是私人的,所以只有您和組織的成員才能看到此頁面。

  2. 選取 免費取得 以開始安裝程式。 從下拉功能表中選取您與共用延伸模組的組織。

    顯示延伸模組安裝對話框的螢幕快照。

  3. 選擇 [安裝]。

恭喜! 您已將擴充功能安裝到組織,並已準備好試用。

試用擴充功能

  1. 在安裝精靈結束時,選取 繼續至組織 以前往安裝此擴充功能的組織首頁(https://dev.azure.com/{organization})。

  2. 重新整理您的瀏覽器。

  3. 開啟 [組織設定],然後選取 [ 擴充功能]。

    [組織設定]、[延伸模組] 頁面的螢幕快照。

您應該會在 [ 已安裝 ] 索引標籤上看到新的延伸模組。

偵錯您的擴充套件

若要使用 Visual Studio 或 Browser Developer Tools 對延伸模組進行偵錯,請新增 baseUri 屬性來變更指令清單。 此動作可加速開發,而不需要在每次變更原始程式碼時重新部署擴充功能。

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

當您變更 manifest文件時,它會從您的本機網頁伺服器上載入擴充功能。 例如,Visual Studio 中的 IISExpress。 變更指令清單之後,僅部署並安裝此偵錯延伸模組一次。

注意

在 SSL 模式中執行本機網頁伺服器,因為 Azure DevOps 會要求從安全來源提供網頁。 否則,您會在擴充功能 IFRAME 載入期間,於瀏覽器控制台中收到錯誤。

更新擴充功能

若要更新您已發佈的擴充功能,請執行下列步驟:

提示

更新您的延伸模組,而不是移除再重新上傳。 我們建議維持兩個擴充功能:publisher.extension,在 Marketplace 上公開讓客戶使用;以及 publisher.extension-dev,僅限與貴組織共用,以便進行開發和測試的私人擴充功能。 您不需要兩份原始程式碼複本,只要針對每個延伸模組維護個別的指令清單檔案即可。 封裝時,請將適當的指令清單檔提供給 tfx-cli 工具。 如需詳細資訊,請參閱 TFX 擴充功能命令。

  1. 從顯示的項目清單中選取您的延伸模組。
  2. 以滑鼠右鍵點擊並選取 更新 以更新開發版本,如 publisher.extension-dev。
  3. 驗證您的擴充功能。
  4. 將相同的更新套用至生產版本,例如 publisher.extension。
  5. 瀏覽至擴充功能的 .vsix 檔案並將其上傳。

Azure DevOps 會自動安裝已擁有擴充功能之所有帳戶的更新版本。 新的安裝也會收到最新版本。

將您的擴充功能設為公用

開發期間,保持擴充功能私密,只有共享組織能看到。 準備好後,在你的清單中將 公開旗標 設為 true 公開列出。

資格

公開市場的上市必須符合以下要求:

  • 使用並且擴充 Azure DevOps。
  • 您或您的公司擁有、開發並授權發行該擴充功能。
  • 延伸段目前仍在積極維護中。

Microsoft 可能會要求您展示和檢視您計劃的 Marketplace 條目內容。

頂尖出版商

Top Publisher 計畫僅提供給擁有 Azure DevOps 擴充或整合的出版商。 這不適用於 Visual Studio IDE 或 Visual Studio Code 擴充套件的發行者。

Top Publisher 徽章的螢幕快照。

該計畫表彰那些透過模範政策、品質、可靠性及支持展現對客戶承諾的出版商。 一旦你成為優秀出版商,所有公開的產品都會顯示該徽章。

頂級發行者要求

市場在根據以下標準審核出版商後,會授予徽章:

  • 隱私權原則
  • 授權原則
  • 支援原則
  • 文件
  • 問答回應效率
  • 評等和評論
  • 主動用戶與安裝數量
  • 至少有一個公開的 Azure DevOps 擴充套件,安裝超過 5,000 次,且活躍安裝數超過 1,000 件

如需將原則新增至供應專案的詳細資訊,請參閱 延伸模組清單。

申請前,請更新您的出版商資料:

  1. 登入 出版商管理入口網站。

  2. 選擇出版社,並在詳情標籤中填寫關於你的部分。

    這是關於你在 Microsoft 出版商專區的截圖。

  3. 儲存你的更改並選擇 「檢視個人資料 」以驗證使用者的呈現方式。

注意

這個程式認證的是出版商,而不是他們擴充功能的安全性。 評估任何出版商的產品時,請先查閱 安全資訊 。

申請成為頂尖發行者

  1. 登入 市集管理入口網站。
  2. 選擇出版商,然後前往 「頂尖出版商 」標籤。這個分頁只有在你擁有一個或多個全域 Azure DevOps 擴充或整合時才會出現。
  3. 如果你符合條件且是出版商的擁有者,請選擇 申請。 市場團隊會審核您的申請並在10個工作天內回覆。

團隊也可能在核發徽章前,考慮積極使用率、安裝數量、評分與評論。 Microsoft隨時保留授與、拒絕或撤銷 Top Publisher 徽章的權利。

一旦核准,出版社未來所有更新與產品必須持續符合要求。

回應市集擴充功能評價

你可以回覆客戶對你的延伸留下的評論。 如果你具有擁有者、創作者或貢獻者的權限,請選擇評論旁的「回覆」。

您只能留下一個回應。 避免使用評論作為支持論壇。 相反地,提供一個支援別名讓審查者聯絡,然後在外部解決問題,然後再更新你的回覆。

發行者回應的指導方針

  • 使用 回覆 僅限於回應評論。
  • 把所有留言都當作回饋——不要辯論、批評或爭辯。
  • 專注於直接解決問題或回答問題。
  • 如果你需要更多細節,請客戶用電子郵件聯絡你。 解決問題後再更新你的回覆。
  • 將不當評論(如垃圾訊息、辱罵性或冒犯性內容)標記以供 Marketplace 審核。

要求撤銷評論

如果報告的問題是由市場或底層平台引起,你可以提出上訴,要求取消評論。 如果有效,市集管理員會取消評分。 在你的擴充功能中心頁面的評分和評論區域選擇 申訴 。

取消發佈擴充功能

如果您不想再在 Marketplace 中提供免費延伸模組,您可以取消發佈免費擴充功能。 常見案例:

  • 你換了新的擴充套件。
  • 你需要在解決問題的同時暫時移除它。
  • 你不小心公開發表了。

必須符合特定準則,才能取消發佈或移除延伸模組:

動作 需求
取消發布 只有 免費擴充功能 才可能未發佈。
移除 您的延伸模組必須安裝 零 (0) 才能移除。

重要

如果您因為法律或安全性問題而必須移除擴充功能,請在 開發人員社群 連絡客戶支援。 我們會檢閱要求,並手動刪除延伸模組。

  1. 選取發行者頁面上的延伸模組,然後選擇功能表上的 [取消發佈]。

    您的延伸模組會立即從 Marketplace 解除發布,且新使用者無法安裝。 您的擴充功能的評等和評論將維持不變。

若要在 Marketplace 中再次提供您的擴充功能,請從選單中選取 [發佈]。

如果您的延伸模組沒有安裝,您可以選擇從 Marketplace 完全移除它。 若要這樣做,請從功能表中選取 [移除]。 您無法反轉此動作。

延伸報告中心

擴充功能發布後,使用 報告 功能追蹤效能。 到你的 出版者頁面 選擇擴充功能,或在擴充功能詳情頁面選擇 報告 。

收購

取得標籤顯示:

  • 選定期間的綜合收購
  • 購買依下載量與 Azure DevOps 安裝(免費)或試用與購買(付費)分割
  • 每日頁面瀏覽量與流量來源趨勢
  • 從頁面檢視轉換成下載數的百分比

對於已付費延期,交易細節包括日期、組織名稱、試用結束日期及數量。 請使用 聯絡 操作與使用者溝通。

解除安裝

卸載標籤顯示:

  • 卸載的組織數量
  • 每日卸載趨勢
  • 卸載過程中分享的詳細意見反應
  • 熱門卸載原因

使用搜尋功能篩選文字和日期。 付費延長請使用 聯絡 操作來聯絡用戶。

評等和評論

評分與評論標籤顯示:

  • 所選期間的平均評分與整體比較
  • 依檢閱者數目的平均評等
  • 每日收視率趨勢

在詳情區,你可以 回覆 評論,編輯 先前回覆,或 申訴 因市場或平台問題而導致的評分無效。

問與答

問答分頁列出所有擴充功能使用者的問題,頂部則有未解答的問題。 回覆或編輯先前的回應以管理互動。

匯出至 Excel

所有報告資料皆可下載XLS格式,方便自訂報告。

連絡人​​

對於付費擴充功能,聯絡動作讓你能與使用者溝通。 在擴充套件上,需要擁有貢獻者或更高的存取權限。

市場會促成第一筆溝通——客戶的電子郵件地址不會直接分享。 只有選擇加入的使用者才能收到這封電子郵件。

重要

請遵守交易性與促銷溝通的指引。 發送垃圾郵件的出版商會被封鎖,並失去所有擴充功能的 聯絡 權限。

允許的交易性溝通:關鍵安全通知、交易確認、產品召回通知、特定回饋請求及服務終止通知。

促銷電子郵件(限制):活動邀請、行銷計畫公告、增值內容提供及含促銷內容的電子報。

如需詳細資訊,請參閱 Marketplace 發行者合約。

術語 說明
頁面檢視 擴充功能詳細頁面檢視次數總數。 重複觀看次數會被計算。
Azure DevOps Services 會安裝 安裝擴充功能的組織總數。 在相同的組織上重複安裝會計算。
Azure DevOps Server 會安裝 延伸模組安裝的集合總數。 在相同的集合上重複安裝的次數會被計算。 無法取得中斷連線的伺服器資料。