Преобразование веб.конфигурация для развертывания веб-сайта Azure для каждой среды выпуска


В Visual Studio Team Services (была Visual Studio Online) у меня есть три среды выпуска, каждая из которых имеет шаг развертывания веб-сайта Azure.

Я могу преобразовать паутину.config для шага сборки, указав переменную" BuildConfiguration " (например, Uat), которая выбирает веб.УАТ.конфиг.

Однако у меня есть несколько сред выпуска, которые используют эту конфигурацию сборки, которые все должны преобразовать веб-конфигурацию (например, Dev, Test, Uat, Live).

Можно ли указать преобразование web config для использования в каждой среде выпуска перед этапом развертывания веб-сайта Azure?

Примечание: Я понимаю, что простые настройки приложений и привязки соединений можно указать на портале Azure в разделе "Все настройки" для веб-сайта, но мне нужно сделать гораздо больше, чем преобразовать эти простые настройки, и я уже настроил преобразования web config для каждой среды в моем решении

2 4

2 ответа:

Задача tokenizer, входящая в составутилиты Release Management Tasks , позволяет преобразовывать конфигурационные файлы в зависимости от среды.

Можно использовать один конфигурационный файл JSON, содержащий всю конфигурацию для всех сред, и задача автоматически подберет нужную конфигурацию в зависимости от среды.

{
  "<environment>": {
    "CustomVariables": {
    "Variable1": "value1",
    "Variable2": "value2",
  },
    "ConfigChanges": [
        {
          "KeyName": "/configuration/appSettings/add[@key='ServiceURL']",
          "Attribute":"value",
          "Value":"https://ServiceURL"
        },
        {
          "KeyName": "/configuration/appSettings/add[@key='EnableDebugging']",
          "Attribute":"value",
          "Value":"false"
        },
        {
          "KeyName":“/configuration/connectionStrings/add[@name='databaseentities']”,
          "Attribute": "connectionString",
          "value": "Integrated Security=True;Persist Security Info=False;Initial Catalog=DB;Data Source=servername"
        }
    ]
}

Таким образом, вы можете иметь много сред и их конфигурацию в одном файле JSON, и задача tokenizer будет измените конфигурацию в зависимости от среды, в которой выполняется развертывание.

Прочитайте подробности по ссылке выше, чтобы узнать больше.

Паутина.config преобразуется в процессе сборки, если вы создаете пакет развертывания из "Build" и затем развертываете его в "Release", то вы не можете преобразовать его до развертывания.

Вы можете использоватьпараметризацию Web Deploy для обновления значений в web.настройка перед развертыванием. Дополнительная информация для справки: Web Deploy Parameterization vs Web.config Transform .

И вы также можете использовать задачу Replace Tokens для замены значений в сеть.конфигурационный файл перед развертыванием.