封裝併發佈整合至 Marketplace

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

您是否有與 Azure DevOps 或 Team Foundation Server (TFS) 整合的工具、服務或產品? 如果是,請在Visual Studio Marketplace上發佈,協助使用者找到它。 Marketplace 是個人和小組的一站式商店,可尋找擴充和增強體驗的工具。

流覽 Marketplace 以查看其他整合和延伸模組的範例。

注意

如果您要尋找延伸模組的封裝和發佈資訊,請參閱 套件和發佈延伸模組

發佈需求

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

  • 安裝延伸模組封裝工具 (TFX)。 從命令提示字元執行 npm install -g tfx-cli
  • 請確定已授與適當的許可權,以使用任何影像,例如圖示、標誌、螢幕快照等等。
  • 包含完整的 overview.md 檔案,以在 Marketplace 中描述您的清單。
  • 包含擴充功能的圖示,其大小至少為128x128圖元。
  • 當您參考 Microsoft 產品時,請使用完整名稱來取代縮寫,例如 Azure DevOps 與 AzDO 或 - 任何其他縮寫。
  • 避免在延伸模組的名稱中使用品牌名稱。

必要條件

  1. 128x128 像素標誌(PNG 或 JPEG 格式)代表您的整合、您自己或您的公司/組織
  2. 顯示整合的螢幕快照至少一個
  3. 呼叫動作/開始使用 URL(使用者應該前往何處開始使用您的整合)

步驟

發佈至 Marketplace 是一個反覆的程式,其開頭是建立定義整合和重要探索特性的指令清單檔案(例如螢幕快照、標誌和概觀內容)。 此資訊可用來向 Marketplace 上的使用者呈現您的整合,例如:

範例

適用於 Azure DevOps 的 Jenkins

注意:以下參考的檔案會使用 字詞 extension。 延伸模組是另一種類型的 Marketplace 專案,從探索觀點分享許多相似之處作為整合。

需要協助才能在 Marketplace 上整合? 與我們連絡。 而且,是的,這個電子郵件位址是由真正的人監視。

建立發行者

所有延伸模組和整合,包括來自 Microsoft 的延伸模組,都有發行者。 任何人都可以建立發行者,並在其下發佈延伸模組。 如果小組正在開發延伸模組,您也可以讓其他人存取您的發行者。

使用者擁有發行者,通常是建立發行者的使用者。 您也可以與其他使用者共享發行者。

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

  2. 如果您還不是現有發行者的成員, + 建立發行者。 在 [發行者名稱] 欄位中輸入名稱。 [標識元] 欄位應該根據您輸入的名稱自動設定。

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

    注意

    記下標識碼,因為您需要在延伸模組的指令清單檔中加以設定。

    如果未提示您建立發行者,請向下卷動至頁面底部,然後選取 [相關網站] 下方的 [發佈延伸模組]。

    • 指定發行者的標識碼,例如: mycompany-myteam。 此標識碼會作為延伸模組指令清單檔案中 屬性的值 publisher
    • 指定發行者的顯示名稱,例如: My Team
  3. 檢閱 Marketplace 發行者合約,然後選取 [ 建立]。

    建立延伸模組的發行者

發行者建立之後,系統會引導您管理專案,但沒有任何專案。

建立資料夾以包含您的專案指令清單和其他資產

將整合封裝為延伸模組之前,您必須建立 home 資料夾以包含此資料夾中的一些必要資產:

  1. 建立名為 images 的資料夾以包含:
    • 整合的標誌 (128x128 像素)
    • 螢幕快照(1366x768 像素)
  2. 建立名為的檔案 overview.md
  3. 建立名為的檔案 vss-integration.json
    • 此檔案是 Marketplace 清單的指令清單檔案,其中包含許多屬性,以在 Marketplace 清單中描述您的延伸模組。 您可以在這裏瀏覽 延伸模組指令清單參考

延伸模組指令清單

  1. 使用下列 JSON 填入檔案 vss-integration.json

    {
        "manifestVersion": 1,
        "id": "myservice",
        "version": "1.0.0",
        "name": "My Service",
        "publisher": "mycompany",
        "description": "Awesome tools to help you and your team do great things everyday.",
        "targets": [
            {
                "id": "Microsoft.VisualStudio.Services.Integration"
            }
        ],    
        "icons": {
            "default": "images/service-logo.png"
        },
        "categories": [
            "Plan and track"
        ],
        "tags": [
            "working",
            "people person",
            "search"
        ],
        "screenshots": [
            {
                "path": "images/screen1.png"
            },
            {
                "path": "images/screen2.png"
            }
        ],
        "content": {
            "details": {
                "path": "overview.md"
            },
            "license": {
                "path": "fabrikam-license-terms.md"
            }
        },
        "links": {
            "getstarted": {
                "uri": "https://www.mycompany.com/help/getstarted"
            },
            "learn": {
                "uri": "https://www.mycompany.com/features"
            },
            "support": {
                "uri": "https://www.mycompany.com/support"
            }
        },
        "branding": {
            "color": "rgb(34, 34, 34)",
            "theme": "dark"
        }
    }
    
  2. 使用下列參考更新 JSON:

這些屬性是必要的:

屬性 描述 附註
manifestVersion 對應至指令清單格式版本的數位。 應該是 1
識別碼 延伸模組的標識碼。 此標識碼是一個字串,在相同發行者的延伸模塊之間必須是唯一的。 它必須以字母或數值字元開頭,並包含 'A' 到 'Z'、'a' 到 'z'、'0' 到 '9' 和 '-' (連字元)。 範例:sample-extension
version 指定延伸模組版本的字串。 格式 major.minor.patch應為 ,例如 0.1.21.0.0。 您也可以針對下列格式新增第四個數位: 0.1.2.3
name 延伸模組的簡短人類可讀取名稱。 限制為200個字元。 範例:"Fabrikam Agile Board Extension"
publisher 發行者的標識碼。 此標識碼必須符合發佈擴充功能的標識碼。 請參閱 建立和管理發行者
categories 字串數位,代表延伸模組所屬的類別。 至少必須提供一個類別,而且您可能包含的類別數目沒有限制。 有效值: Azure ReposAzure BoardsAzure PipelinesAzure Test Plans、 和 Azure Artifacts

注意:
    - 如果您要以程式設計方式發佈延伸模組,請使用 >tfx-cli 0.6.3 版。
    - 如果您使用 Azure DevOps 擴充功能延伸模組 發佈,請確定其版本為 >= 1.2.8。 您可能因為最近的範圍變更而必須核准擴充功能更新。
    - 先前提及的類別原生存在於 Visual Studio Marketplace 和 Azure DevOps Server 2019 和更新版本。 針對以舊版 TFS 為目標的延伸模組:
      - 如果 TFS 客戶透過連線內容中的 Visual Studio Marketplace(而非本機資源庫)取得延伸模組,請使用先前所述的類別。
      - 如果您要直接與使用 TFS <=2018 的客戶共用延伸模組(也就是不是透過 Visual Studio Marketplace),請改用下列類別:程式代碼、規劃和追蹤、建置和發行、測試、共同作業和整合。 如果您需要透過Visual Studio Marketplace 和直接與 TFS <= 2018 客戶共用,則必須有 2 個延伸模組套件。
目標 整合或擴充功能所支援的產品和服務。 如需詳細資訊,請參閱 安裝目標 物件的陣列,其中每個物件都有一個 id 欄位,指出下列其中一項:
    - Microsoft.VisualStudio.Services(適用於 Azure DevOps 或 TFS 的擴充功能)、
    - Microsoft.TeamFoundation.Server(適用於 TFS 的擴充功能)、- Microsoft.VisualStudio.Services.Integration
    (與 Azure DevOps 或 TFS 搭配運作的整合)、
    - Microsoft.TeamFoundation.Server.Integration (與 TFS 搭配運作的整合)

這些選擇性屬性可協助使用者探索並瞭解您的延伸模組:

屬性 描述 附註
description 描述延伸模組的幾個句子。 限制為200個字元。 描述應該是您延伸模組的「電梯投向」-幾行可在 Marketplace 中描述您的延伸模組,並讓使用者想要安裝它。 請參閱下列範例
圖示 代表延伸模組的圖示字典。 有效密鑰: default BMP、GIF、EXIF、JPG、PNG 和 TIFF 類型的 128x128 像素)。 未來可能支援其他索引鍵,例如 large (512x512 像素)。 每個機碼的值都是延伸模組中圖示檔案的路徑
標記 字串標籤標的陣列,可協助使用者尋找您的延伸模組。 範例: agileproject managementtask timer等。
截圖 無法包含在內容中的影像陣列。 當您的內容精選時,螢幕快照會更有價值,而且應該用來協助為您的延伸模組製作高品質的市場詳細數據頁面。 針對內容中未精選的較不重要影像使用螢幕快照。 每個影像應為1366x768圖元。 path每個專案的 是擴展名中檔案的路徑。
內容 描述您擴充功能給使用者的內容檔案字典。 每個 延伸模組都應該包含實心內容。 這是您將如何向使用者顯示擴充功能可以執行的動作。 使其豐富、消耗性,並視需要包含螢幕快照。 overview.md包含檔案作為您的基底內容片段。 每個檔案都假設為 GitHub Flavored Markdown 格式。 path每個專案的 是擴展名中 Markdown 檔案的路徑。 有效索引鍵: details。 未來可能支援其他金鑰。
連結 連結的字典,可協助使用者深入瞭解您的延伸模組、取得支援和移動。 有效的金鑰: getstarted - 第一個步驟,如何設定或使用。 learn - 更深入的內容,可協助用戶進一步瞭解您的延伸模組或服務。 license - 使用者許可協定。 privacypolicy - 延伸模組的隱私策略。 support - 取得延伸模組的說明和支援。 每個索引鍵的值都是具有 uri 字段的物件,這是鏈接的絕對URL
存儲庫 描述延伸模組之原始程式碼存放庫的屬性字典 有效金鑰: type - 存放庫的類型。 範例: gituri - 存放庫的絕對 URL。
徽章 來自已核准徽章網站的外部元數據徽章連結陣列, 例如 TravisCI、Appveyor 等等 有效金鑰: href - 當使用者選取徽章時,會流覽至該金鑰。 uri - 要顯示的徽章影像絕對 URL。 description - 要顯示在暫留時徽章的描述。
品牌 品牌相關屬性的字典。 有效索引鍵: color - 延伸模組或發行者的主要色彩;可以是十六進位(#ff00ff)、RGB(rgb(100,200,50)或支援的 HTML 色彩名稱(藍色)。 theme - 補充色彩;將 深色用於深 色商標色彩,或 色商標色彩。

詳細資料頁面

  • 1 - 描述
  • 2 - 圖示
  • 3 - 類別
  • 4 - 螢幕快照
  • 5 - 內容(詳細資料)
  • 6 - 連結
  • 7 - 商標

卡片

請確定 「public」 屬性設定為 「false」 (或完全未設定),以避免您的延伸模組或整合在 Marketplace 上的所有使用者過早看到。

封裝您的指令清單和資產

取得套件工具 (tfx-cli)

您可以從命令行安裝或更新適用於 Azure DevOps 的跨平臺 CLI(tfx-cli),其 npm元件 為 Node.js

npm i -g tfx-cli

在 .vsix 檔案中封裝您的整合

tfx extension create --manifest-globs vss-extension.json

注意

擴充功能/整合的版本必須在每次更新時遞增。
如果您尚未在指令清單中遞增擴充功能/整合,則應該傳遞 --rev-version 命令行參數。 這會遞增 擴充功能的修補程式 版本號碼,並將新版本儲存至指令清單。

將您的整合發佈至 Marketplace

封裝延伸模組之後,您可以將它上傳至發行者下的 Marketplace。 publisher延伸模組指令清單檔中指定的標識碼必須符合上傳延伸模組之發行者的標識碼。

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

  2. 選取 [新增擴充功能>Azure DevOps]。

    顯示 [新增擴充功能] 下拉功能表和醒目提示 [Azure DevOps] 選取項目的螢幕快照。

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

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

    快速驗證之後,您的延伸模組會出現在已發佈的延伸模塊清單中。 別擔心,只有您可以看到延伸模組。

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

此時,任何帳戶都看不到您的延伸模組,而且在您共用它之前無法安裝。

注意

Microsoft 會在每個已發佈的全新和更新延伸模組套件上執行病毒掃描。 在掃描全部清除之前,我們不會在 Marketplace 中發佈延伸模組以供公用使用。 如此一來,我們也會避免在 Marketplace 頁面上呈現不適當的或冒犯性內容。

共用您的整合

您必須先與該組織共用,才能將整合安裝到 Azure DevOps 或 TFS 中的組織。 共用是開發與測試整合期間的需求,因為它是執行整合的唯一方式。

若要共用整合,請執行下列工作:

  1. 從顯示的項目清單中選取整合
  2. 選取 [ 共用] 按鈕
  3. 指定要顯示此整合的組織名稱。
    • 例如,若要讓 dev.azure.com/fabrikam-fiber-inc 組織看到整合,請指定 fabrikam-fiber-inc

更新項目

若要變更已發行的延伸模組,請加以更新。

提示

建議您透過移除和重新上傳來更新延伸模組。 我們也建議有兩個延伸模組,例如 publisher.extensionpublisher.extension-devPublisher.extension 在 Marketplace 中是公用的,客戶可以在其 Azure DevOps 組織中安裝它。 Publisher.extension-dev 在 Marketplace 中保持私用,而且可以與您擁有和控制的組織共用。 您不需要維護延伸模組的兩個原始程式碼複本。 您可以維護兩個指令清單檔案 -- 每個延伸模組的一個,在封裝擴充功能期間,您可以將個別的指令清單檔案提供給 tfx-cli 工具。 如需工具所需自變數的詳細資訊,請參閱 TFX 擴充功能命令。

  1. 從顯示的專案清單中選取延伸模組。
  2. 以滑鼠右鍵按兩下 ,然後選取publisher.extension-dev[更新],例如。
  3. 驗證您的延伸模組。
  4. 例如,對生產版本 publisher.extension進行相同的更新。
  5. 流覽至 .vsix 以取得您的延伸模組並上傳。

延伸模組的更新版本會自動安裝到已安裝它的帳戶。 未來安裝擴充功能的新帳戶也會收到最新版本。

讓您的整合公開 (每個人都可以看到)

如需將整合公開的資訊,請造訪 將您的清單公開