2009-08-18 7 views
20

¿Hay alguna manera de utilizar automáticamente una aplicación.config por separado cuando se compila en modo de lanzamiento?Visual Studio: diferencia app.config para el modo de depuración y liberación

En otras palabras, quiero probar con una aplicación.config y lanzarla con otra.

Actualmente, conservo una copia separada llamada app.config.production, y sobrescribo manualmente bin \ Release \ Application.exe.config después de compilar para su lanzamiento.

Respuesta

7

me han publicado recientemente una respuesta sumamente tardía a un tema similar SO: https://stackoverflow.com/a/27546685/2798367

lo voy a repetir aquí para mayor claridad:

Esto es un poco tarde a la fiesta, pero tropezaron con una bonita forma de implementar el enfoque web.transform para app.config archivos. (es decir, hace uso del espacio de nombres http://schemas.microsoft.com/XML-Document-Transform)

Creo que es "bueno" porque es un enfoque de xml puro y no requiere software de terceros.

Se desciende un archivo principal/predeterminado App.config, de acuerdo con sus diversas configuraciones de compilación. Estos descendientes solo anulan lo que necesitan. En mi opinión, esto es mucho más sofisticado y robusto que tener que mantener x cantidad de archivos de configuración que se copian en su totalidad, como en otras respuestas.

Un tutorial ha sido publicado aquí: http://mitasoft.wordpress.com/2011/09/28/multipleappconfig/


Mira, mamá - No hay explícitas colocar acumulaciones eventos en mi IDE?

3

Una manera sencilla y rápida es crear un segundo fichero "App.release.config" e insertar este evento de pre-construcción:

IF $(ConfigurationName) == Release COPY /Y "$(ProjectDir)App.config" "$(ProjectDir)App.debug.config" 
IF $(ConfigurationName) == Release COPY /Y "$(ProjectDir)App.release.config" "$(ProjectDir)App.config" 

Y este evento posterior a la construcción:

IF $(ConfigurationName) == Release COPY /Y "$(ProjectDir)App.debug.config" "$(ProjectDir)App.config" 

Esto podría ser un poco extraño, pero le permitirá seguir utilizando los archivos .Settings como configuración de depuración, que todavía están vinculados al App.config. El App.release.config debe compilarse a mano, pero es muy fácil cambiar esta funcionalidad.

+0

¿dónde agrega estos eventos de compilación? – Adrian

+1

@Adrian Haga clic derecho en su proyecto en su solución, haga clic en "Propiedades" y abra el botón "Crear eventos" – modiX

0

No sé si esto ayuda, pero app.config reconocerá las cadenas de sustitución estándar de MSBUILD como $ (Configuración).

2

Recomiendo mucho SlowCheetah para las transformaciones de app.config. Visite esta joya Nuget aquí Visual Studio Gallery

Cuestiones relacionadas