Web.config 变量更新不适用于 Azure DevOps 管道(文件转换)

时间:2021-02-18 22:40:47

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

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

我创建的任务如下:

enter image description here

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

一切似乎都很顺利,但是,当我查看日志时,我看到了这一点

enter image description here

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

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

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

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

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

谢谢

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

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- 将变量添加到变量组

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