Visual Studio: diferenciar la aplicación.config para debug y release modo

Hay una manera de utilizar automáticamente una aplicación separada.config cuando el edificio en el modo de lanzamiento?

En otras palabras, quiero probar con una sola aplicación.config, y con la liberación de otro.

Actualmente, guardo una copia independiente llamado app.config.de producción, y sobrescribir manualmente bin\Release\Aplicación.exe.config después de la construcción para la liberación.

InformationsquelleAutor Korey | 2009-08-18

5 Kommentare

  1. 14

    Recientemente he publicado un supremamente tardía respuesta a una similar PARA el tema:
    https://stackoverflow.com/a/27546685/2798367

    Voy a repetir aquí para mayor claridad:

    Esto es algo tarde a la fiesta, pero me topé con una forma bonita de la aplicación de la web.transform enfoque para app.config archivos. (es decir, se hace uso del espacio de nombres http://schemas.microsoft.com/XML-Document-Transform)

    Yo creo que es «bonito», porque es un puro xml enfoque y no requiere de 3rd party software.

    Un padre /App predeterminada.archivo de configuración es descendiente de, de acuerdo a sus diversas configuraciones de compilación.
    Estos descendientes, a continuación, reemplazar sólo lo que necesitan.
    En mi opinión esto es mucho más sofisticado y robusto de tener que mantener x número 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 explícito posterior a la generación de eventos en mi IDE!

    • Para VS 2017, v10.0 tiene que ser reemplazado con v15.0 en <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v15.0\Web\Microsoft.Web.Publishing.targets" /> en el pie por encima.
  2. 8

    Descargar proyecto en el explorador de soluciones a través de contet menú. Edit .archivo csproj.
    Agregar esta cadenas de caracteres en el archivo.

    <PropertyGroup>
        <AppConfig>App.$(Configuration).config</AppConfig>
    </PropertyGroup>
    
    • aunque intellisense no mostrar appconfig como una propiedad válida. Se trabaja. Creo que es más útil en la etapa final de desarrollo, cuando no se necesitan grandes cambios en la aplicación.archivo de configuración. gracias
  3. 6

    Una forma simple y rápida es crear un segundo archivo «App.de liberación.config» y la inserción de este evento pre-build:

    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 post generar evento:

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

    Este podría ser un poco raro, pero te permitirá seguir usando el .Settings como archivos de configuración de depuración, que están vinculados a la App.config. El App.release.config se debe construir con la mano, pero es bastante fácil cambiar esta funcionalidad.

    • donde agregar estos eventos de generación?
    • Haga clic derecho con el proyecto en la solución, haga clic en «Propiedades» y abrir el grifo «a la generación de Eventos»
  4. 4

    Recomiendo SlowCheetah para la aplicación.config transformaciones. Visita este nuget gema La Galería De Visual Studio

    • Nota al margen: SlowCheetah sólo funciona cuando publica sus obras, no de depuración.
    • que ya no es el caso
    • Bueno! Tenía la esperanza de que el cambio vendría abajo el lucio pronto.
  5. 0

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

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea