在azuredevops发布期间替换令牌
我有一个发布管道来部署一个 asp.net 核心 Web 应用程序。这是从 azure devops 上的一个简单的 asp.net web 部署模板创建的。Web 部署步骤仅指向工件放置文件夹的 .zip 文件并部署应用程序。
我想替换我的 appSettings.Staging.json 文件中的令牌,例如:
我正在使用令牌替换市场工具:https : //github.com/qetza/vsts-replacetokens-task并按照文档中的非常标准的方式进行设置:
并在 devops 中设置我的变量:
我希望将“DummyValue”替换为“ActualValue”。
由于工件是一个 zip 文件,我添加了“文件提取器”任务来解压缩存档,然后让令牌替换任务目标该文件夹。根据日志,似乎令牌替换最终确实替换了一个值,但我无法直接访问这些资源来确定。
由于我现在正在提取文件,因此我将 web 部署任务指向了未归档文件所在的新文件夹,并且它已成功部署,但生成的 appsettings.Staging.json 文件仍然没有替换令牌。在部署作业的日志中,我看到了这一点:
2021-03-28T07:36:19.6554561Z 已启动使用 ZIP Deploy 的包部署。2021-03-28T07:38:08.8457706Z 已成功将 Web 包部署到应用服务。
似乎它仍在使用 ZIP 部署,我不确定它在哪里找到 zip 文件,因为 devops 日志中没有任何内容。
只是想知道是否有其他人经历过这种情况以及最好的方法是什么。
回答
您似乎正在使用此扩展程序:XDT Transform。在组织中安装后,有 2 个外部任务:XDT 转换任务和发布管道中的替换令牌任务。
appSettings.Staging.json我的 repo 中有文件,它将被发布到 zip 工件中。
在我的发布管道中,此工件的路径是$(System.DefaultWorkingDirectory)/Drop/drop/aspnet-core-dotnet-core.zip.
如果我想替换这个工件文件中的DummyValue令牌appSettings.Staging.json,创建管道变量DummyValue并使用提取文件任务、替换令牌任务和存档文件任务,最后发布将存档替换的文件夹以替换原始 zip 工件,所以它完成了. 所以它完成了。不必要的 PowerShell 任务用于输出替换的文件。