2009-08-18 18 views
20

C'è un modo per utilizzare automaticamente un'appc.config separata quando si crea in modalità di rilascio?Visual Studio: differenzia app.config per la modalità debug e release

In altre parole, voglio testare con una app.config e rilasciarne un'altra.

Attualmente, tengo una copia separata denominata app.config.production e sovrascrivo manualmente bin \ Release \ Application.exe.config dopo averlo creato per il rilascio.

risposta

7

Recentemente ho inviato un risposta estremamente tardiva ad un simile SO argomento: https://stackoverflow.com/a/27546685/2798367

lo ripeto qui per chiarezza:

Questo è un po in ritardo alla festa, ma sono incappato in un bel modalità di implementazione dell'approccio web.transform per i file app.config. (vale a dire fa uso del namespace http://schemas.microsoft.com/XML-Document-Transform)

Penso che sia "bello" perché è un approccio xml puro e non richiede software di terze parti.

Un file App.config padre/predefinito discende, in base alle varie configurazioni di compilazione. Questi discendenti quindi ignorano solo ciò di cui hanno bisogno. A mio parere questo è molto più sofisticato e robusto di dover mantenere il numero di file di configurazione x che viene copiato nella loro interezza, come in altre risposte.

Una guida è stata pubblicata qui: http://mitasoft.wordpress.com/2011/09/28/multipleappconfig/


Guarda, mamma - Non ci sono espliciti post-generazione eventi nella mia IDE!

3

Un modo semplice e veloce è quello di creare un secondo file "App.release.config" e inserire questo evento pre-compilazione:

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

E questo post evento di compilazione:

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

Questo potrebbe essere un po 'strano, ma ti permetterà di continuare a utilizzare i file come impostazioni di debug, che sono ancora collegati allo App.config. Il App.release.config deve essere compilato a mano, ma è piuttosto semplice cambiare questa funzionalità.

+0

dove aggiungi questi eventi di compilazione? – Adrian

+1

@Adrian Fare clic con il pulsante destro del mouse sul progetto nella soluzione, fare clic su "Proprietà" e aprire il rubinetto "Crea eventi" – modiX

0

Non so se questo aiuta, ma app.config riconoscerà le stringhe di sostituzione MSBUILD standard come $ (Configurazione).

2

Consiglio vivamente SlowCheetah per le trasformazioni app.config. Visita questa gemma di nuget qui Visual Studio Gallery

Problemi correlati