Мы рассматриваем использование machine.config, чтобы добавить один ключ для среды, а затем иметь один раздел в web.config, который в точности одинаков для всех сред. Таким образом, мы можем сделать «настоящее» развертывание XCopy.
например. в machine.config для каждого компьютера (локальные рабочие станции разработчика, серверы этапов, серверы сборки, производственные серверы) мы добавим следующее:
<appSettings>
<add key="Environment" value="Staging"/>
</appSettings>
Затем к любому элементу конфигурации, зависящему от среды, добавляется среда, например:
<connectionStrings>
<add name="Customers.Staging" provider="..." connectionString="..."/>
</connectionStrings>
<appSettings>
<add key="NTDomain.Staging" value="test.mydomain.com"/>
</appSettings>
Одна проблема, для которой у нас нет решения, это как включить трассировку, скажем, в web.config для среды отладки, а не для реальной среды.
Другая проблема заключается в том, что активная строка подключения вкл. имя пользователя и пароль теперь в вашей системе контроля версий. Однако это не проблема для нас.