【问题标题】:How to debug VSTS extension build summary tab without deploying to VSTS service?如何在不部署到 VSTS 服务的情况下调试 VSTS 扩展构建摘要选项卡?
【发布时间】:2023-03-25 13:01:01
【问题描述】:

我需要为 VSTS 构建摘要选项卡开发一个相当复杂的 UI。我使用 VS Code 作为代码编辑器。以下 url 描述了如何使用 Edge 浏览器进行调试,但是这种方法需要不断地打包和部署 VSTS 扩展,这使得它非常耗时。 https://www.visualstudio.com/en-us/docs/integrate/extensions/test/debug-in-browser

我尝试使用“在浏览器中查看”扩展程序和浏览器控制台中显示的以下消息直接加载 .html(摘要选项卡),

No handler found on any channel for message: 
{"id":1,"methodName":"initialHandshake","instanceId":"VSS.HostControl","params":[{"notifyLoadSucceeded":true,"vssSDKVersion":2}],"jsonrpc":"2.0","handshakeToken":"4234q23rqfafaf23r"}

在开发过程中有没有更好的调试应用程序的方法?

【问题讨论】:

    标签: tfs azure-devops azure-pipelines azure-pipelines-build-task


    【解决方案1】:

    您可以在本地开发。由于 VSTS 使用 iframe 来显示您的扩展程序的内容,您可以运行本地服务器并在 vss-extension.json 清单中引用它。

    首先,在vss-extension.json 中,将baseUri 属性设置为您在本地运行项目的位置,例如https://localhost:8889。您需要以 https 的身份运行它,以便 VSTS 提供内容,否则您将收到“混合内容”错误,并且 VSTS 将拒绝显示您的扩展程序的内容。

    然后,发布您的扩展程序并在本地运行它。哇啦,你应该有本地发展。可能需要更多的试验和错误,如果我缺少任何步骤,请告诉我。

    如果链接仍然有效(您知道 Interent 是怎样的),那么这个入门项目是一个很好的开始:https://github.com/Microsoft/vsts-extension-multivalue-control

    【讨论】:

    • 你说你可以在本地开发,但是后面跟着然后,发布你的扩展并在本地运行..这是否意味着我们毕竟需要先发布我们的应用程序吗?有没有办法根本不发布应用程序?例如,当我们处于开发的早期阶段时,我们只想调试应用程序而不发布它,并且不会收到No handler found on any channel for message 错误..
    • 如果要访问VSTS API,需要先发布。如果您不希望其他人看到您的扩展程序,请将 public 标志设置为 false 在您的 vss-extension.json 文件中,它不会发布到市场。但是为了在 VSTS 中查看应用程序并访问 API,需要先发布它,是的。但是您可以只发布一次并引用您的本地 Web 服务器,然后在本地运行它,直到您准备好发布真实的东西。
    • 感谢您的澄清 :)
    【解决方案2】:

    不,如果不将扩展部署到 VSTS,则无法调试扩展代码,必须在调试代码之前将扩展部署到 VSTS。

    【讨论】:

      【解决方案3】:

      初始部署后,您可以使用 Fiddler 直接从磁盘 using FiddlerScript or the AutoResponder feature 返回文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多