¿Alguien tiene buenos consejos para manejar las diferencias en la configuración de web.config entre entornos? Consideré crear una carpeta 'config' en nuestro sistema de control de origen, pero fuera de la jerarquía web, y hacer que el proceso de implementación copie los archivos de configuración apropiados (web.dev.config, web.staging.config, web.production.config) en la carpeta web al momento de la implementación. También he visto publicaciones sobre cómo cambiar las configuraciones por programación (puntos finales WCF, cadenas de conexión, etc.) cuando se inicia la aplicación.Diferenciando web.config entre entornos dev, staging y producción
¿Cuáles son las mejores prácticas consideradas aquí, y qué experiencias ha tenido cada uno con estos u otros enfoques?
actualización Sep 2010
Vale la pena señalar que Visual Studio 2010 agrega esta capacidad a través de web.config transforms. Cuando utiliza el administrador de configuración de compilación (Build | Configuration Manager ...) para crear diferentes configuraciones para su proyecto (por ejemplo, Debug, Dev, Staging y Release), VS agrega archivos de configuración web. * .con la solución. El archivo web.config predeterminado contiene la configuración de línea base que usará para la depuración. web.release.config, web.staging.config, etc. contienen transformaciones XSLT que se aplicarán siempre que publique su proyecto en función de la configuración de compilación activa.
Ver http://stackoverflow.com/questions/305447/using-different-web-config-in-development-and-production-environment/305498#305498 – PhilPursglove
@PhilPursglove que es ideal para la configuración de la biblioteca empresarial, pero no lo hace ayuda con otras configuraciones de configuración por lo que yo sé. Hay mucho más que cambia entre entornos que cadenas de conexión y propiedades relacionadas con db. –