2009-08-18 7 views
20

Gibt es eine Möglichkeit, automatisch eine separate app.config beim Erstellen im Freigabemodus zu verwenden?Visual Studio: differenzieren Sie app.config für Debug- und Release-Modus

Mit anderen Worten, ich möchte mit einem app.config testen und mit einem anderen freigeben.

Momentan behalte ich eine separate Kopie mit dem Namen app.config.production und überschreibe bin \ Release \ Application.exe.config nach dem Erstellen für die Veröffentlichung manuell.

Antwort

7

Ich habe eine höchst verspätete Antwort auf ein ähnliches SO Thema vor kurzem geschrieben: https://stackoverflow.com/a/27546685/2798367

Ich werde es wiederholen hier für Klarheit:

Dies ist auf die Partei etwas spät, aber ich stolperte über einen schönen Art der Umsetzung der web.transform Ansatz für app.config Dateien. (d. h. es verwendet den Namensraum

Ich denke, es ist "nett", weil es eine reine XML-Ansatz ist und keine Software von Drittanbietern erfordert.

Eine übergeordnete/standardmäßige App.config-Datei stammt von Ihren verschiedenen Build-Konfigurationen ab. Diese Nachkommen überschreiben dann nur, was sie brauchen. Meiner Meinung nach ist das viel ausgefeilter und robuster als die Anzahl der Konfigurationsdateien, die in ihrer Gesamtheit kopiert werden müssen, wie in anderen Antworten, x.

Ein Durchlauf wurde hier gepostet: http://mitasoft.wordpress.com/2011/09/28/multipleappconfig/


Schauen Sie, Mom - keine expliziten Post-Build-Ereignisse in meiner IDE!

3

Eine einfache und schnelle Art und Weise ist eine zweite Datei "App.release.config" erstellen und fügen Sie dieses Pre-Build-Ereignis:

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

Und dieses Beitrag Buildereignis:

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

Das ist vielleicht etwas merkwürdig, aber Sie können weiterhin die .Settings Dateien als Debug-Einstellungen verwenden, die immer noch mit der App.config verknüpft sind. Die App.release.config muss von Hand erstellt werden, aber es ist ziemlich einfach, diese Funktionalität zu wechseln.

+0

wo fügen Sie diese Build-Ereignisse hinzu? – Adrian

+1

@Adrian Rechtsklick auf Ihr Projekt in Ihrer Lösung, klicken Sie auf "Eigenschaften" und öffnen Sie den Tap "Build Events" – modiX

0

Ich weiß nicht, ob das hilft, aber app.config wird die Standard-MSBUILD-Substitutionszeichenfolgen wie $ (Configuration) erkennen.

2

Ich empfehle SlowCheetah für app.config Transformationen. Besuchen Sie dieses kleine Juwel hier Visual Studio Gallery