TeamCity无法识别配置参数



我已经编写了这个脚本

$xml = New-Object XML
$xml.Load(".buildDashboardUITests.dll.config")
$xml.configuration.appSettings.add |Where-Object {$_.key -eq 'Browser'}|% {$_.value = '%Config_Browser%'}
$xml.configuration.appSettings.add |Where-Object {$_.key -eq 'Environment'}|% {$_.value = '%Config_Enviroment%'}
$xml.configuration.appSettings.add |Where-Object {$_.key -eq 'baseUrl'}|% {$_.value = '%Config_URL%'}
$xml.Save(".buildDashboardUITests.dll.config")

并且在我使用的构建配置中创建了这三个构建参数。

Config_Browser = googlechrome
Config_Enviroment = MyEnviroment
Config_URL = BigUrl

目前,脚本将在dll.config 中显示这样的内容

<add key="browser" value="%Config_Browser%" />

根据TC文件,配置参数不需要前缀

"配置参数(无前缀)不会传递到生成中,仅用于共享生成配置中的设置。它们是自定义基于模板或使用元运行程序的生成配置的主要手段。"

出于某种原因,当我在这些参数前面加上另一个"%"(例如)时,我的脚本才能识别这些参数

$xml.configuration.appSettings.add |Where-Object {$_.key -eq 'Browser'}|% {$_.value = '%%Config_Browser%'}

会在dll.config 中显示这样的内容

<add key="browser" value="%%googlechrome%" />

为什么我的脚本无法识别我创建的参数?

我敢打赌是powershell管道导致了这个问题,因为它也使用了%字符。我会尝试用foreach替换这个别名,构建配置参数的替换应该可以正常工作。

最新更新