Как переопределить ключи в файле служб 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.

  1. Установить расширение задач Release Management Utility
  2. Добавить 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 напрямую.

Обновите файлы конфигурации с помощью PowerShell

Другие вопросы по тегам