2012-06-14 4 views
1

У меня есть несколько проектов, в которых у нас есть 3-5 различных web.config.xxx, которые должны соответствовать различным сценариям, разработчикам-разработчикам, серверу сборки, тестовому серверу, производственному серверу, производству -внутренний, производственный-внешний. Xxx - это всего лишь маркер, описывающий среду, к которой он принадлежит.Конфигурирование web.config для разных сценариев

Эти web.configs в основном идентичны, такие вещи, как connectionstrings, точки интеграции, mailserver и т. Д., Отличаются друг от друга, но структура более или менее идентична. Поэтому, если я добавлю значение в файл web.config, я должен записать его в пару файлов, если я изменю значение, которое мне нужно изменить во всех web.configs в решении ... Это очень просто подумайте, что я сделаю это позже, я могу изменить имя, я не уверен, правильно ли это. Поэтому мы скучаем по ценностям, когда иногда приходим к производству, и это смущает. Проблема в том, что это проблема, которую нужно легко устранить.

Как справиться с этой ситуацией? Я начинаю смотреть на «pre-build-events», которые могли бы проверить конфигурацию сборки и сделать некоторые простые замены, изменить {db} на DevDB, если я буду строить в отладке. Если я построю для сборки-сервера, я мог бы построить конфигурацию и сделать подходящую замену для этой среды.

Есть ли предпочтительный способ обращения с этим?

+0

Вы используете проекты веб-сайтов или проекты веб-приложений? Если вы используете проекты веб-приложений, те специфические web.config.xxx не будут полезны для вас, поскольку они не объединяются во время сборки или повторной сборки. –

ответ

1

Похоже, вы выиграете от конфигурационных преобразований.

При развертывании веб-сайта часто требуется, чтобы некоторые параметры в файле Web.config развертываемого приложения отличались от файла Web.config разработки. Например, вы можете отключить параметры отладки и изменить строки подключения, чтобы они указывали на разные базы данных.

Источник ниже показывает, как настроить файл преобразования web.config, который применяется автоматически во время развертывания, чтобы внести изменения в web.config.

Источник: How to: Transform Web.config When Deploying a Web Application Project

Примечание: Этот метод может быть применен к любому количеству внедрений (стадирования, испытание, производство, Foo, Bar и т.д.).

Как правило, в проекте у вас есть 1 файл web.config. Связанный с тем, что у вас может быть web.production.config, web.staging.config и т. Д. Каждый из файлов конфигурации. *. Config будет преобразованием, которое содержит немного языка для изменения различных значений в вашем web.config, таких как строки подключения. Каждый из этих файлов преобразования связан с параметром развертывания, который вы обычно выбираете во время развертывания (небольшое раскрывающееся меню в верхней части Visual Studio, которое обычно устанавливается в «Debug»).

+0

К сожалению, мы работаем с веб-сайтами ... ваши решения, где именно то, что я искал в каждом аспекте, кроме этого ... – user1153744

Смежные вопросы