En Visual Studio 2010 y versiones posteriores, ahora tiene la capacidad de aplicar una transformación a su web.config según la configuración de compilación.
Al crear un archivo web.config, puede expandir el archivo en el explorador de soluciones y verá dos archivos:
- Web.Debug.Config
- Web.Release.Config
Contienen código de transformación que se puede usar para
- Cambiar la cadena de conexión
- Eliminar el rastro de depuración y la configuración
- Registrar páginas de error
Consulte Web.config Transformation Syntax for Web Application Project Deployment en MSDN para obtener más información.
También es posible, aunque oficialmente no es compatible, aplicar el mismo tipo de transformación a un app.config
archivo de aplicación no web . Consulte el blog de Phil Bolduc sobre cómo modificar el archivo de su proyecto para agregar una nueva tarea a msbuild.
Esta es una solicitud de larga duración en Visual Studio Uservoice .
Una extensión para Visual Studio 2010 y superior, " SlowCheetah " , está disponible para encargarse de crear transformaciones para cualquier archivo de configuración. A partir de Visual Studio 2017.3, SlowCheetah se ha integrado en el IDE y Microsoft administra la base de código. Esta nueva versión también admite la transformación JSON.
Pierre-Alain Vigeant
fuente
Web.Debug.Config
yWeb.Release.Config
, es posible que deba hacer clic derechoWeb.Config
y clicAdd Config Transforms
.La
<appSettings>
etiqueta en web.config admite un atributo de archivo que cargará una configuración externa con su propio conjunto de claves / valores. Esto anulará cualquier configuración que tenga en su web.config o la agregue.Aprovechamos esto modificando nuestro web.config en el momento de la instalación con un atributo de archivo que coincida con el entorno en el que se está instalando el sitio. Hacemos esto con un interruptor en nuestro instalador.
p.ej;
Nota:
fuente
restartOnExternalChanges
que tratará esos archivos como si fueran web.configs. Fuente: learnable.com/books/…¿Has mirado en proyectos de implementación web?
http://www.microsoft.com/downloads/details.aspx?FamilyId=0AA30AE8-C73B-4BDD-BB1B-FE697256C459&displaylang=en
También hay una versión para VS2005, si no está en 2008.
fuente
Me gustaría saber también. Esto me ayuda a aislar el problema
Luego mantengo un connectionStrings.config así como un "{host} connectionStrings.config". Sigue siendo un problema, pero si hace esto para secciones que difieren en los dos entornos, puede implementar y versionar el mismo web.config.
(Y no uso VS, por cierto)
fuente
Utilizo NAnt Build Script para implementar en mis diferentes entornos. Tengo que modificar mis archivos de configuración a través de XPath dependiendo de dónde se implementen, y luego los coloca automáticamente en ese entorno usando Beyond Compare .
La configuración demora uno o dos minutos, pero solo necesita hacerlo una vez. Luego, los archivos por lotes se hacen cargo mientras voy a buscar otra taza de café. :)
Aquí hay un artículo que encontré al respecto.
fuente
En un proyecto en el que teníamos 4 entornos (desarrollo, prueba, preparación y producción), desarrollamos un sistema en el que la aplicación seleccionaba la configuración adecuada según el nombre de la máquina en la que se implementó.
Esto funcionó para nosotros porque:
Funcionó bien para nosotros en este caso, pero probablemente no funcionaría en todas partes.
fuente
El editor de configuración de Enterprise Library puede ayudarlo a hacer esto. Le permite crear un archivo de configuración base y luego deltas para cada entorno. Luego puede fusionar la configuración base y el delta para crear un web.config específico del entorno. Eche un vistazo a la información aquí que lo lleva a través de ella mejor que yo.
fuente
También podría convertirlo en un paso posterior a la compilación. Configure una nueva configuración que es "Implementar" además de Depuración y lanzamiento, y luego haga que el paso posterior a la compilación copie sobre el archivo web.config correcto.
Utilizamos compilaciones automatizadas para todos nuestros proyectos, y con ellos el script de compilación actualiza el archivo web.config para que apunte a la ubicación correcta. Pero eso no lo ayudará si está haciendo todo desde VS.
fuente
Este es uno de los grandes beneficios de usar machine.config. En mi último trabajo, tuvimos entornos de desarrollo, prueba y producción. Podríamos usar machine.config para cosas como cadenas de conexión (a la máquina de SQL dev / test / prod apropiada).
Esto puede no ser una solución para usted si no tiene acceso a la máquina de producción real (como si estuviera utilizando una empresa de alojamiento en un host compartido).
fuente
También puede usar la extensión "Transformación de configuración" funciona igual que "SlowCheetah",
fuente