我在.Net Framework 4.6.1上的ASP.NET(非核心)网站的Azure DevOps(Visual Studio Online)中具有构建和发布管道。
部署完成后,对于我在XDT转换文件中设置的所有Web.config
value
,AppSettings
文件具有空的keys
属性。
Web.config具有以下值:
<appSettings>
<add key="testKey1" value="testValue1" />
<add key="testKey2" value="testValue2" />
….
….
</appSettings>
部署完成后,AppSettings
在Web.config
中是这样的:
<appSettings>
<add key="testKey1" value="" /> <!-- Notice how the value is empty -->
<add key="testKey2" value="" />
….
….
</appSettings>
请注意:这是直接从服务器提取的。
我的转换文件名为Web.MyTestEnvironment.config
,而MyTestEnvironment与Azure DevOps中负责部署/发布工件的阶段的名称相同。
在日志中,我可以看到azure app service deploy (Version 4.x if that matters)
一步一步地应用了这些转换并报告了成功(我已经在管道变量中将System.Debug
设置为true
来实现这一点)。
我尝试下载工件zip文件,发现parameters.xml
文件已设置了所有XPath定位器,但是SetParameters.xml
文件看起来像这样:
<parameters>
<setParameter value="" name="testKey1" /> <!-- Also notice how value is empty -->
<setParameter value="" name="testKey2" />
</parameters>
我已经尽力想尽一切办法,并且一直在网上寻找类似的问题,但无济于事。
这是在CI任务中设置FileTransform的方式:
有什么想法为什么忽略我的转换?还是被SetParameters.xml
文件覆盖?
我已遵循本指南在Azure DevOps中设置转换:https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/transforms-variable-substitution?view=azure-devops
此外,研究了无数StackOverflow问题,但这些问题并未描述我的情况。
非常感谢您的帮助。