Мы сохраняем всю конфигурацию, относящуюся к машине / профилю, в отдельных файлах конфигурации, а затем используем configSource для их включения следующим образом ...
<connectionStrings configSource="cstrings.config"/>
Таким образом, Web.config такой же и не требует никакихпреобразования.Мы делаем это для строк подключения, настроек smtp и настроек приложения.
Мы контролируем версии Web.config и «машинно-зависимые» файлы, такие как cstrings.config.production, cstrings.config.staging и т. Д.
Если у вас есть такая структура, вы можете легко создавать изображения для разных профилей.У нас есть сценарии развертывания на каждом компьютере, которые читают переменную среды и осуществляют соответствующее развертывание.Например, сценарий сборки промежуточного сервера копирует cstrings.config.staging в cstrings.config и т. Д.