共用方式為


從命令行發佈

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

您可以使用適用於 Azure DevOps 的跨平臺 CLI (tfx-cli) 將擴充功能發佈至 Visual Studio Marketplace。

如需更多資訊,請參閱 發佈、安裝和共用指南的概覽。

先決條件

從 Node 套件管理器取得 TFX CLI,並產生 Microsoft Entra 令牌或個人存取令牌(PAT)。 此外,如果您還沒有設定,請在圖庫中設定發行者。

取得適用於 Azure DevOps 的跨平臺 CLI

  1. 如果您沒有它,請下載並安裝 NodeJS。 在設定期間,請確定您保留 [新增至PATH] 選擇。

  2. 開啟命令提示字元,然後輸入 npm i -g tfx-cli

如果您已安裝 TFX CLI,您可以執行 npm up -g tfx-cli更新至最新版本。

使用 Microsoft Entra 令牌作為服務主體進行發佈

您也可以將擴充套件發佈為服務主體

  1. 請將該服務主體新增為發行者帳戶的一名成員。 您可以從其個人資料中使用 Profiles - Get取得服務主體的 ID。 然後,您可以使用上一個步驟中的標識符,將服務主體新增為成員 發行者。

  2. 使用服務主體透過 TFX CLI 發佈延伸模組。 執行下列 TFX CLI 命令以使用其存取權杖:

tfx extension publish --publisher my-publisher --vsix my-publisher.my-extension-1.0.0.vsix --auth-type pat -t <ENTRA_TOKEN>

使用個人存取令牌發佈

  1. 登入您的組織(https:dev.azure.com/{organization})。

  2. 從您的首頁,開啟用戶設定圖示,然後選擇 [個人檔案]

    選取使用者設定圖示後,選取設定檔

  3. 在 [安全性] 底下,選取 [個人存取令牌],然後選取 [[新增令牌]

    建立新的個人存取令牌

  4. 完成表單:

    • 為您的令牌命名
    • 選取 所有可存取的組織,此值是透過 CLI 發佈時唯一可運作的。 如果您只選取一個組織,即使 PAT 有效,也會導致錯誤
    • 選取令牌的到期時間範圍。 這是必要的,因為 Visual Studio Marketplace 發布 API 不依賴於組織的背景下運作。
    • 設定與此令牌相關聯的存取範圍。 請務必選取 Marketplace (publish) 範圍。 此範圍會限制 Token 只能夠將擴充功能發佈至商店。
    • 選取 建立

    ..

  5. 複製您產生的個人存取令牌。 請務必將它保密。

    複製您的令牌,並將它保密

安裝 TFX CLI 並擁有權杖之後,您就可以使用工具來封裝和發佈延伸模組。

  1. 開啟命令提示符到延伸模組的根目錄。
  2. 執行下列命令來發佈延伸模組。 出現提示時,請輸入要驗證的令牌。
tfx extension publish --publisher <YOUR_PUBLISHER_ID> --manifest-js <YOUR_EXTENSION_MANIFEST> --share-with <ACCOUNT_NAME>

潛在錯誤

如果您的延伸模組已發行,您可能會收到下列錯誤:

Failed Request: Internal Server Error(500) - Version number must increase each time an extension is published. Extension: fabrikam.my-extension  Current version: 0.1.9  Updated version: 0.1.9

您可以新增 旗標,以自動遞增延伸模組 版本的 修補程式。 這也會將新版本儲存至您的指令清單。

注意

create 的所有可用選項都適用於 publish 命令。

C:\vso-team-calendar>tfx extension publish --publisher publishFabrikam --manifest-js fabrikam.config.js --share-with fabrikam --rev-version
Copyright Microsoft Corporation
> Personal access token:
Checking if this extension is already published
It is, update the extension
Waiting for server to validate extension package...
Sharing extension with fabrikam.

=== Completed operation: publish extension ===
 - Packaging: C:\vso-team-calendar\fabrikam.team-calendar-0.2.6.vsix
 - Publishing: success
 - Sharing: shared with fabrikam