Развертывание внешних файлов конфигурации

В настоящее время мы используем внешние файлы конфигурации для управления определенными конфигурациями в наших приложениях ASP.Net MVC. Некоторые примеры - это appsettings, connectionStrings и конфигурации ведения журнала.

Я знаком с использованием преобразований для изменения Web.Config в различных конфигурациях сборки, но, похоже, нет возможности выполнять эти преобразования при использовании внешних файлов конфигурации.

Я также обеспокоен тем, что создание отдельных конфигураций сборки для каждой среды может не использовать эту функцию по назначению - это конфигурация сборки (которая по умолчанию включает отладку и выпуск), предназначенная для представления среды развертывания (Dev, QA, Staging, Production )?

Мы используем TeamCity, хотя я предполагаю, что этот вопрос применим к любому серверу сборки.

Есть ли встроенный или рекомендуемый способ управления внешними / ссылочными файлами конфигурации, которые меняются в зависимости от среды развертывания? Это то, чем нужно управлять на уровне решения, или это скорее функция сервера сборки?


person Phil Sandler    schedule 02.07.2013    source источник


Ответы (1)


Выбор правильной настройки конфигурации является частью процесса развертывания. Любой достойный инструмент развертывания предоставляет необходимые инструменты для выбора и применения правильной конфигурации к вашему развертыванию. например, так Octopus обрабатывает это.

Однако, если вы не используете специальный механизм развертывания, вы можете написать собственный сценарий для удовлетворения ваших потребностей. Все, что вам нужно сделать, это поместить маркеры в файлы конфигурации и определить словари для каждой среды и использовать сценарий, чтобы решить, какой словарь будет применяться к шаблону в процессе развертывания.

Я нашел эту реализацию, в которой для хранения значений используются файлы Excel. IMHO его overkill и файлы excel не очень дружелюбны. В большинстве случаев файла INI должно быть более чем достаточно.

person Mehran    schedule 03.07.2013