【问题标题】:replace tokens during release in azure devops在 azure devops 发布期间替换令牌
【发布时间】:2024-05-02 05:00:01
【问题描述】:

我有一个发布管道来部署一个 asp.net 核心网络应用程序。这是从 azure devops 上的简单 asp.net Web 部署模板创建的。 Web 部署步骤只是指向工件放置文件夹的 .zip 文件并部署应用程序。

我想替换我的 appSettings.Staging.json 文件中的令牌,例如:

我正在使用令牌替换市场工具:https://github.com/qetza/vsts-replacetokens-task 并以非常标准的方式进行设置,如文档所述:

并在 devops 中设置我的变量:

我希望将“DummyValue”替换为“ActualValue”。

由于工件是一个 zip 文件,我添加了“文件提取器”任务来解压缩存档,然后让令牌替换任务以该文件夹为目标。根据日志,似乎 Token Replace 确实最终替换了一个值,但我无法直接访问这些资源来确定。

由于我现在正在提取文件,因此我将 Web 部署任务指向未归档文件所在的新文件夹,并且部署成功,但生成的 appsettings.Staging.json 文件仍然没有替换令牌。在部署作业的日志中,我看到了这一点:

2021-03-28T07:36:19.6554561Z 使用 ZIP Deploy 的包部署已启动。 2021-03-28T07:38:08.8457706Z 成功将 Web 包部署到应用服务。

似乎它仍在使用 ZIP 部署,我不确定它在哪里找到 zip 文件,因为 devops 日志中没有任何内容。

只是想知道是否有其他人经历过这种情况以及最好的方法是什么。

【问题讨论】:

  • 嗨,Riz,我的回答对您的问题有用吗?如果是,您可以接受它作为答案,它可以帮助遇到相同问题的其他社区成员,我们可以存档此线程,谢谢。

标签: asp.net-core azure-devops azure-web-app-service


【解决方案1】:

您似乎正在使用此扩展程序:XDT Transform。在组织中安装后,有 2 个外部任务:XDT tranform taskReplace Tokens task 在发布管道中。

我的 repo 中有 appSettings.Staging.json 文件,它将被发布到 zip 工件中。

在我的发布管道中,此工件的路径是 $(System.DefaultWorkingDirectory)/Drop/drop/aspnet-core-dotnet-core.zip

如果我想替换此工件的appSettings.Staging.json 文件中的DummyValue 标记,创建管道变量DummyValue 并使用Extract Files taskReplace Tokens taskArchive Files task,最终版本将归档替换文件夹以替换原始 zip 工件,这样就完成了。这样就完成了。不必要的 PowerShell 任务用于输出替换的文件。

【讨论】: