Как переопределить ключи в файле служб Windows .exe.config через определение выпуска VSTS
Я работаю над выпуском VSTS для развертывания Windows Services Project. К сожалению, мы не создаем никакого определения сборки для создания папки для удаления. Но мой клиент предоставит папку для этого проекта, и мне нужно "Я хочу переопределить ключи существующего файла.exe.config" на уровне выпуска.
Для создания задачи развертывания служб Windows я следовал этому расширению служб Windows
Например, моя папка для удаления выглядит следующим образом:
Большое спасибо за эту справочную статью, и она очень полезна для изменения значений в конфигурационном файле с помощью команд Power Shell. У меня есть сомнения из этой ссылки: Например, если был такой код:
<erecruit.tasks>
<tasks>
<task name="AA" taskName="AA">
<parameters>
<param key="connectionString">Server="XXXX"</param>
</parameters>
</task>
Как изменить это выше значение строки подключения?
1 ответ
Вы можете использовать задачу Tokenizer в расширении задач Release Management Utility.
- Установить расширение задач Release Management Utility
- Добавить Tokenizer с задачей XPath/Regular выражений, чтобы освободить определение (Укажите имя файла источника и имя файла конфигурации Json)
Пример файла конфигурации:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="TestKey1" value="__Token1__" />
<add key="TestKey2" value="__Token2__" />
<add key="TestKey3" value="__Token3__" />
<add key="TestKey4" value="__Token4__" />
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
Файл Json конфигурации (Средой по умолчанию является имя среды в определении выпуска):
{
"Default Environment":{
"CustomVariables":{
"Token2":"value_from_custom2",
"Token3":"value_from_custom3"
},
"ConfigChanges":[
{
"KeyName":"/configuration/appSettings/add[@key='TestKey1']",
"Attribute":"value",
"Value":"value_from_xpath"
}
]
}
}
Тогда значение TestKey1
(ключ) будет связан с value_from_xpath
и значения TestKey2
а также TestKey3
будет связано с value_from_custom2
а также value_from_custom3
,
С другой стороны, вы можете напрямую использовать переменные release, если не указали имя файла конфигурации Json.
Например, есть __TokenVariable1__
в вашем конфигурационном файле и TokenVariable1
релиз / переменная окружения в определении релиза, затем __TokenVariable1__
будет заменен через задачу Tokenizer.
Связанная статья: Использование Tokenization (Token Replace) для сборок / выпусков в vNext/TFS 2015
Обновить:
Вы также можете сделать это через PowerShell напрямую.