我正在尝试在我的管道中使用“文件转换”任务来在部署期间修改我的 web.config 文件中的一些值。
我创建的任务如下:
在管道中,在变量内部,我设置了要在 XML 文件中替换的键和值。
一切似乎都很顺利,但是,当我查看日志时,我看到了这一点
因此,该文件被简单地跳过并且转换不起作用。
我试图在 web.config 文件中修改的变量在 XML 文件中具有以下路径
<aspNetCore>
<environmentVariables>
<environmentVariable name="x" value="y" />
</environmentVariables>
</aspNetCore>
</configuration>
我多次阅读文档,但不清楚我是否做错了什么。
请您提供一些建议,说明我需要检查哪些内容才能使其正常工作?
谢谢
答案 0 :(得分:0)
根据关于XML variable substitution的文档:变量替换仅对配置文件的applicationSettings
、appSettings
、connectionStrings
和configSections
元素生效。它不适用于您的 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- 将变量添加到变量组
部署后,我检查它工作正常。