Я недавно склонялся к манипулированию конфигурацией на сервере непрерывной интеграции. Это связано с тем, что у нас были проблемы с несколькими файлами web.config, web.qa.config, web.production.config, которые сохраняли 95% файла, который должен быть одинаковым в синхронизации.
В двух словах: в контроле исходного кода есть только один web.config, и это конфигурация разработки (дружественная отладка, локальная база данных и т. Д.). Сервер сборки выполняет компиляцию, затем развертывание на канарском сайте, затем пакет для кандидата на выпуск.
Мы используем nant, так что это файл .build, в котором есть xmlpoke для установки debug = "false", изменения строк подключения и всего, что нужно изменить в канареечной копии и упаковочной копии web.config.
Развертывание машины сборки называется «канарейка», потому что она умрет первой, если возникнет проблема.