TeamCity无法识别配置参数

3
我已经编写了这个脚本。
$xml = New-Object XML
$xml.Load(".\build\DashboardUITests.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(".\build\DashboardUITests.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%" />

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

1
我认为问题可能是由于PowerShell的管道符号(|)也使用了%字符,因此建议将该别名替换为foreach,这样构建配置参数替换就能按预期工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接