Преобразование веб.конфигурация для развертывания веб-сайта Azure для каждой среды выпуска
В Visual Studio Team Services (была Visual Studio Online) у меня есть три среды выпуска, каждая из которых имеет шаг развертывания веб-сайта Azure.
Я могу преобразовать паутину.config для шага сборки, указав переменную" BuildConfiguration " (например, Uat), которая выбирает веб.УАТ.конфиг.
Однако у меня есть несколько сред выпуска, которые используют эту конфигурацию сборки, которые все должны преобразовать веб-конфигурацию (например, Dev, Test, Uat, Live).
Можно ли указать преобразование web config для использования в каждой среде выпуска перед этапом развертывания веб-сайта Azure?
Примечание: Я понимаю, что простые настройки приложений и привязки соединений можно указать на портале Azure в разделе "Все настройки" для веб-сайта, но мне нужно сделать гораздо больше, чем преобразовать эти простые настройки, и я уже настроил преобразования web config для каждой среды в моем решении
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 для замены значений в сеть.конфигурационный файл перед развертыванием.