【问题标题】:Package shared code in VSTS extension在 VSTS 扩展中打包共享代码
【发布时间】:2018-08-08 13:28:32
【问题描述】:

我正在编写一个包含构建/发布任务的 VSTS 扩展。我可以在哪里放置一个扩展中多个任务使用的代码?我可以将它放在扩展文件树中的任何位置(例如,下面的 Common 文件夹),然后只使用该路径 - 运行扩展中任何任务的每个代理都会下载这些文件吗?

我目前的目录结构是这样的:

My Extension
|- MyBuildTask
|   |- MyBuildTask.ps1
|   |- task.json
|- MyReleaseTask
|   |- MyReleaseTask.ps1
|   |- task.json
|- Common
|   |- MyModule.psm1
|-vss-extension.json

【问题讨论】:

    标签: azure-devops azure-devops-extensions


    【解决方案1】:

    当你排队构建时,anent 只下载单个任务文件,它不能在任务之间共享文件。您必须在任务目录中打包任务所需的所有文件。

    【讨论】:

    • 谢谢 - 我现在采用的解决方法是在打包扩展时将 Common 目录复制到每个任务中。
    • 我确实尝试将其添加到我的扩展清单中:, { "path": "Common", "addressable": true, "packagePath": "/Common" }Common 目录已添加到我的扩展的根目录中,但我找不到让任务引用它的方法.这可能吗?
    • 您应该使用gulp build 链接文件。你可以查看this example,运行gulp build后,你会看到common文件夹中的DeploymentSDK链接到扩展名IISWebAppDeploy中的所有任务。
    【解决方案2】:

    据我了解,代理会安装整个扩展程序,这意味着扩展程序中的所有代码都应下载并可用于任何任务。

    【讨论】:

    • 不,它只从单个任务目录中下载文件。除非在构建中使用,否则不会下载扩展中的其他任务。
    猜你喜欢
    • 2015-02-14
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多