【问题标题】:How to publish a prod build of our VSTS extensions package to my dev VSTS (not prod VSTS), so I can validate it before publishing to prod VSTS? [duplicate]如何将我们的 VSTS 扩展包的产品构建发布到我的开发 VSTS(不是产品 VSTS),以便我可以在发布到产品 VSTS 之前对其进行验证? [复制]
【发布时间】:2018-04-11 18:21:28
【问题描述】:

我想将包按发布线构建,并将其安装到另一个(非产品)VSTS,以便我可以验证它是否有效,在安装到我们的产品 VSTS 之前。

我们使用带有 VSTS 任务“包扩展”的 VSTS vNext 构建来编译包。 这会将值为“my-prod-publisher”的“Publisher”编译到文件“extension.vsixmanifest”中

我试过了:

  • 手动将包上传到“my-dev-publisher”的 VSTS 市场门户。 结果是:

    “上传错误”: 扩展清单中提供的发布者 ID 'my-prod-publisher' 应该与您所在的发布者 ID 'my-dev-publisher' 匹配 正在尝试发布此扩展程序。

  • 修改 VSIX 包:

    • 解压 .VSIX 包
    • 编辑文件 'extension.vsixmanifest' 以将 'Publisher' 从值 'my-prod-publisher' 更改为 'my-dev-publisher'
    • 将内容压缩到新的 ZIP 文件中
    • 将包文件后缀 .ZIP 更改为 .VSIX
    • 为“my-dev-publisher”上传到 VSTS 市场门户
    • 结果是:

      TF400898:发生内部错误。活动 ID:64d37121-ea19-42dc-9994-dbef8e6dc205。

    我的 google-fu 未能找到与我的案例相关的此错误的内容。没有在这方面搜索太多,因为我没想到重新压缩文件会产生与这些包的编译方式相同的结果。

  • 通过 tfx-cli 发布

    tfx extension publish --service-url https://marketplace.visualstudio.com/ --publisher "my-dev-publisher" --vsix .\my-prod-publisher.vsts-buildrelease-tasks-0.6.181012.vsix --accounts my-dev-vsts --auth-type pat --token [my-dev-vsts-PAT] --trace-level debug

    导致错误:

    收到响应 401(未授权)。 检查您的个人访问令牌是否正确且未过期。

    我验证了“my dev vsts PAT”没有过期,并且在 VSTS“my-dev-vsts”中被授权用于“所有范围”。

  • 验证分支构建,而不是发布行构建

    使用 'Publisher' = 'my-dev-publisher' 编译包确实允许我发布到门户 'my-dev-publisher' 然后允许我将扩展包安装到 'my-dev-VSTS' 中。 这还不够有效,因为我被一些微妙的问题所困扰,例如:

    • 包/任务版本号未正确调整,或与 PROD 的值不同。
    • 在提交到发布行期间丢失了文件/更改。

【问题讨论】:

    标签: tfs azure-devops command-line-interface marketplace azure-devops-extensions


    【解决方案1】:

    我们在CI/CD tasks for extensions 中支持这些功能。这些构建任务还提供了增加扩展版本和扩展中包含的构建任务的选项。如果您愿意,可以使用任务组标准化构建过程。或者使用发布管理将 vsix 从 dev 推广到 prod。这些任务实际上会覆盖发布者 ID。您还必须覆盖 extension-id 并将其设为私有。只能公开一个公共产品扩展,并且扩展 ID 是全球唯一的。

    另一种方法是同时构建 dev 和 release vsix 以确保它们匹配。然后在需要之前不要使用发布包。

    您看到的问题是我们构建这些任务的原因。

    • TF400898: An Internal Error Occurred. Activity Id: 64d37121-ea19-42dc-9994-dbef8e6dc205. 当 zip 使用错误的压缩方法时会发生这种情况。在扩展任务中,我不得不花很多时间来获得正确的 7z 语法。
    • Received response 401 (Not Authorized). Check that your personal access token is correct and hasn't expired. 是因为从 vsix 发布时 --extension-id--publisher 被忽略。但 TFX 不会告诉你。

    【讨论】:

    • 在 CI/CD 扩展中尝试使用 VSTS 任务 发布扩展:我仍然收到错误 401 (Not Authorized)。您的任务确实成功地从发布包生成了一个新的 VSIX 包,并带有我需要的转换(发布者 = my-dev-publisher),并且我手动上传到我的开发 VSTS 市场门户。成功!我也喜欢你关于发布线编译开发包和发布包的想法。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    • 2018-11-27
    相关资源
    最近更新 更多