【问题标题】:Web.config variable update not working with Azure DevOps pipeline (File Transform)Web.config 变量更新不适用于 Azure DevOps 管道(文件转换)
【发布时间】:2021-02-18 22:40:47
【问题描述】:

我正在尝试在我的管道中使用“文件转换”任务在部署期间修改我的 web.config 文件中的一些值。

我创建的任务如下:

在管道中,在变量内部,我设置了要在 XML 文件中替换的键和值。

一切似乎都很好,但是,当我检查日志时,我看到了这个

因此,该文件被简单地跳过并且转换不起作用。

我试图在 web.config 文件中修改的变量在 XML 文件中具有以下路径

  <aspNetCore>
   <environmentVariables>
     <environmentVariable  name="x" value="y" />
    </environmentVariables>
   </aspNetCore>
 </configuration>

我多次阅读文档,但不清楚我是否做错了什么。

请您提供一些建议,说明我需要检查哪些内容才能使其正常工作?

谢谢

【问题讨论】:

  • 您可以尝试使用replace token 任务或PowerShell 脚本使其工作。你可以参考我的样例:replace token taskPowerShell scripts
  • 很高兴知道您的问题已得到解决。请标记你的答案。这将使有相同问题的人更容易找到答案。

标签: azure-devops azure-pipelines azure-pipelines-release-pipeline azure-deployment azure-pipelines-release-task


【解决方案1】:

根据关于XML variable substitution的文档:变量替换仅对配置文件的applicationSettingsappSettingsconnectionStringsconfigSections元素生效。它不适用于您的 environmentVariable 元素。当我更改 appSettings 元素中的值时,它对我来说效果很好。

请参考文档中关于file transform的示例。

【讨论】:

【解决方案2】:

我正在回答我自己的问题。

根据我收到的 cmets,我找到的解决方案如下:

1- 部署后在管道中使用替换令牌任务 (https://github.com/qetza/vsts-replacetokens-task#readme)。我还删除了那个“文件转换”,因为它不能满足我的需要。 2- 在配置中,我将根文件夹指向已部署的应用程序,没有 Zip 文件,按照另一个问题 (Azure Dev ops replace tokens per environment in release pipeline) 的指示 3- 在 web.config 文件中,我使用了令牌前缀和后缀,如建议的“#{token}# 4- 将变量添加到变量组中

部署后,我检查它工作正常。

【讨论】:

    猜你喜欢
    • 2021-11-23
    • 2020-01-17
    • 2019-04-30
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多