2014-09-12 4 views
3

Я написал этот скриптTeamCity не распознает конфигурацию параметры

$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 параметры Config не требуется никакого префикса

«Параметры конфигурации (без префикса) не передаются в сборку и предназначены только для совместного использования настроек в конфигурации сборки. Они являются основным средством настройки конфигурации сборки, которая основана на шаблоне или использует мета-бегун ».

По какой-то причине мой сценарий распознает только эти параметры, когда префикс их с другим «%», например

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

показать бы что-то подобное в dll.config

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

Почему мой скрипт не распознает мои созданные параметры?

ответ

1

Я бы пообещал, что проблема с трубопроводом powershell вызывает проблему, потому что она также использует символ%. Я бы попытался заменить этот псевдоним на foreach, а замена параметра конфигурации сборки должна работать должным образом.

+0

Молодцы. Ваше решение отлично работало – Pudding

Смежные вопросы