Есть несколько способов справиться с этим. Я упомяну два. Один касается вашего процесса доставки. Другой на самом деле включает в себя web.config.
1) Не отправляйте файл web.config как «код». Считайте это «конфигурацией». Это не подходит для всех сценариев (на самом деле, сценарий на основе клиента - плохой сценарий, о котором я думал). Если вы осуществляете доставку в «производство», вы можете согласиться возложить на них ответственность за содержимое web.config (и есть хорошая попытка реорганизовать как можно больше в machine.config). Таким образом, такие вещи, как строка подключения, становятся проблемами производства, а не проблемами разработки.
2) Используйте атрибут configSource. ASP.NET 2.0 поддерживает внешние атрибуты с атрибутом configSource. Может быть трудно перевернуть ВСЕ из web.config как «производственную задачу» (в сценарии доставки клиенту они могут не быть экспертами во всем этом).
Итак, вы воплощаете это так. Вот ваш текущий раздел настроек приложения, например:
<appSettings>
<add key="EnableFrobbing" value="false" />
<add key="ExpectFooingFrom" value="fooingserver@domain.com " />
</appSettings>
Если это настройки, которые вы хотите экспортировать, чтобы ваши новые поставки не переопределяли настройки клиента, замените их следующим:
<appSettings configSource="App_Data\WebConfigXML\appSettings.xml"/>
Относительные пути только здесь, насколько я знаю.
Ссылки:
(Показывает, что свойство является новым в ASP.NET 2.0)
http://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.configsource%28v=VS.80%29.aspx
http://www.codeproject.com/KB/aspnet/Manage_Webconfig.aspx
http://trycatchfail.com/blog/post/2008/09/25/Webconfig-magic-configSource-and-file-attributes.aspx