Frage

Ich habe eine Anwendung abhängig von einigem internen Web-Service, und so wollen wir unsere Entwicklung und Abstufungskonfigurationen auf die Entwicklung und Staging-Server für den Web-Service verweisen.

Im Moment bedeutet dies Bearbeitung manuell meine app.config-Datei auf die entsprechenden URLs zu zeigen. Dies ist nicht nur ein Streit, aber anfällig für menschliche Fehler ( „oops, habe ich nicht, dass die Produktion URL entfernen?“ Viele-a-Problem verursachen kann).

In einer kleinen Handvoll von Stellen im Code, verwende ich die

#if DEBUG
    // do something
#endif

Vorverarbeitung Anweisung, und frage mich, ob etwas ähnliches für Werte in der app.config getan werden könnte. Ich habe in der Lage gewesen, dies ganz gut mit meinen App-Einstellungen zu tun, da diese Werte zugänglich in-Code sind.

Ich bin mir dessen bewusst Skripte Post-Build, aber es scheint, als gäbe es vielleicht einen einfacheren Weg, als eine Routine zu schreiben, die app.config XML jedes Mal wenn ich einen Build tun, um munge. Irgendwelche Vorschläge?

Dies ist für C # und .NET 3.5 und umfasst sowohl alte als „Web-Referenzen“ sowie den neueren WCF „Web-Service“ Referenzen.

War es hilfreich?

Lösung

Wir haben ein Programm namens XmlPreprocessor von Sourceforge zu handhaben. Es ermöglicht Ihnen, Parameter in den Konfigurationsdateien und andere Wertdateien zu erstellen, um sie von zu füllen.

die folgenden Dateien Gegeben:

app.config

...
<importantSetting>$importantSettingValue$</importantSetting>
...

qavalues.xml

...
<importantSettingValue>QAvalue</importantSettingValue>
...

prodvalues.xml

...
<importantSettingValue>PRODvalue</importantSettingValue>
...

Eine Befehlszeile entlang der Linien finden Sie alles, was gebraucht die richtigen Werte an den richtigen Stellen zu erhalten.

XmlPreProcess.exe app.config qavalues.xml
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top