从命令行发布
Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019
可以使用适用于 Azure DevOps 的跨平台 CLI(tfx-cli)将扩展发布到 Visual Studio 市场。
有关详细信息,请参阅发布、安装和共享概述。
先决条件
从节点包管理器获取 TFX CLI,并生成Microsoft Entra 令牌或个人访问令牌(PAT)。 此外,如果还没有设置,请在“库”中设置 Publisher。
获取适用于 Azure DevOps 的跨平台 CLI
如果没有,请下载并安装 NodeJS。 在设置过程中,确保选择了添加到 PATH 选项。
打开命令提示符并输入
npm i -g tfx-cli
。
如果已安装 TFX CLI,可以通过运行 npm up -g tfx-cli
更新到最新版本。
使用 Microsoft Entra 令牌作为服务主体进行发布
还可以将扩展发布为服务主体。
将服务主体作为成员添加到发布者帐户。 可以使用 配置文件 - 获取从其配置文件中获取服务主体的 ID。 然后,可以使用上一步中的 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 是在独立于组织上下文的情况下运行的。
- 设置与此令牌关联的访问范围。 请务必选择市场(发布)范围。 此范围将令牌限制为只能向市场发布扩展。
- 选择 创建
复制生成的个人访问令牌。 请确保将其保密。
安装 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