Azure DevOps 服務 |Azure DevOps Server |Azure DevOps Server 2022
您可以使用適用於 Azure DevOps 的跨平臺 CLI (tfx-cli) 將擴充功能發佈至 Visual Studio Marketplace。
如需更多資訊,請參閱 發佈、安裝和共用指南的概覽。
先決條件
從 Node 套件管理器取得 TFX CLI,並產生 Microsoft Entra 令牌或個人存取令牌(PAT)。 此外,如果您還沒有設定,請在圖庫中設定發行者。
取得適用於 Azure DevOps 的跨平臺 CLI
如果您沒有它,請下載並安裝 NodeJS。 在設定期間,請確定您保留選擇 新增至PATH 的選項。
開啟命令提示字元,然後輸入
npm i -g tfx-cli。
如果您已安裝 TFX CLI,您可以執行 npm up -g tfx-cli更新至最新版本。
使用 Microsoft Entra 令牌作為服務主體進行發佈
- 請將該服務主體新增為發行者帳戶的一名成員。 您可以透過 REST API 取得服務主體的識別碼,方法是透過 az cli 登入並查詢服務主體的配置檔。 這可以使用下列命令來完成:
az login --service-principal --username <appId> --password <password> --tenant <tenant-id>
# 499b84ac-1321-427f-aa17-267ca6975798 specifies azure devops as a resource
az rest -u https://app.vssps.visualstudio.com/_apis/profile/profiles/me --resource 499b84ac-1321-427f-aa17-267ca6975798
然後,您可以使用上一個步驟中的 ID,將服務主體新增為發行者的成員。
tfx extension publish --publisher my-publisher --vsix my-publisher.my-extension-1.0.0.vsix --auth-type pat -t <ENTRA_TOKEN>
使用個人存取令牌發佈
登入您的組織(
https:dev.azure.com/{organization})。從您的首頁,開啟用戶設定圖示,然後選擇 [個人檔案]。
在 [安全性] 底下,選取 [個人存取令牌],然後選取 [[新增令牌]。
完成表單:
- 為您的令牌命名
- 選取 所有可存取的組織,此值是透過 CLI 發佈時唯一可運作的。 如果您只選取一個組織,即使 PAT 有效,也會導致錯誤
- 選取令牌的到期時間範圍。 這是必要的,因為 Visual Studio Marketplace 發布 API 不依賴於組織的背景下運作。
- 設定與此令牌相關聯的存取範圍。 請務必選取 Marketplace (publish) 範圍。 此範圍會限制 Token 只能夠將擴充功能發佈至商店。
- 選取 建立
複製您產生的個人存取令牌。 請務必將它保密。
安裝 TFX CLI 並擁有權杖之後,您就可以使用工具來封裝和發佈延伸模組。
- 開啟命令提示符到延伸模組的根目錄。
- 執行下列命令來發佈延伸模組。 出現提示時,請輸入要驗證的令牌。
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
您可以新增 --rev-version 標誌,以自動遞增您的延伸模組版本的 修補程式。 這也會將新版本儲存至您的指令清單。
注意
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