Один из возможных подходов состоит в том, чтобы «экспортировать» определенные части вашей конфигурации во внешние файлы, по одному на среду.
например. у нас есть «bindings.dev.config» и «bindings.test.config», на которые мы затем ссылаемся в нашем основном файле web.config, например:
<system.serviceModel>
<bindings configSource="bindings.dev.config" />
</system.serviceModel>
Таким образом, все, что вам нужно для перехода с DEV на PROD, - это одна строка XML-конфигурации.
По сути, в конфигурации .NET 2.0 любой элемент конфигурации может быть «выведен». Однако вы не можете напрямую экспортировать configGroups (например, «system.serviceModel») - вы должны быть на уровне «элемента конфигурации».
Марк
РЕДАКТИРОВАТЬ: ОК, поэтому НЕТ изменения конфигурации config для переключения между средами .....
В этом случае вам, вероятно, придется придумать схему именования, например, Назовите свои привязки, поведение и конечные точки таким образом, чтобы вы могли различать их во время выполнения.
Что-то вроде:
<bindings>
<binding name="Default_DEV">
.....
</binding>
<binding name="Default_PROD">
.....
</binding>
</bindings>
таким образом, вы можете создать имя нужного вам элемента (например, привязку «Default_PROD») из вашего кода и среды, в которой вы работаете, а затем получить соответствующую конфигурацию из файла конфигурации, который содержит все Настройки конфигурации для всех сред.