2017-06-08 3 views
0

ist hier kurze Zusammenfassung der aktuellen Situation: In meiner Lösung (Konsolenanwendung) Ich App.Config Datei mit dem Eintrag wie folgt verwenden:.NET App.config. Wie man Dateiattribut ersetzt?

< appSettings file = "Additional.config"> Auf unserer Produktionsumgebung diese Datei wird von einer separaten Routine bereitgestellt und wir möchten sie nicht in das Projektdatei-Repository einfügen. Dennoch benötigen wir eine bequeme Möglichkeit, die Lösung in der Entwicklungsumgebung auszuführen.

Wir haben eine Idee, die Datei Attribut mit SlowCheetach zu ersetzen. Es funktioniert gut mit dem Ersetzen von Schlüsselwerteinträgen, aber wir können es nicht korrekt ausführen.

Gibt es eine Möglichkeit, Datei Eigenschaft mit SlowCheetach oder ein anderes leichtes Werkzeug zu ersetzen? Wir möchten wirklich vermeiden, Build-Skripte zu verwenden, um die app.config-Ausgabe zu ändern.

Antwort

0

Die folgende Lösung funktioniert nicht ordnungsgemäß, da ID kein gültiges Schemaelement ist. Echte Lösung ganz unten.

Ich habe einen einfachen Weg gefunden, dies zu erreichen. Alles, was benötigt wird, zu tun, ist ein weiteres Attribut zu appSettings hinzufügen und legen Sie es als Spiel Selector so Eintrag in app.config aussehen würde:

<appSettings file="Additional.config" id="appconfig"> 

und die in App.Debug.config:

<appSettings id="appconfig" file="New/Path/To/Additional.config" xdt:Transform="Replace" xdt:Locator="Match(id)"> 

Echt Lösung hier:

Es stellt sich heraus, dass man einfach in Form umwandeln können:

<appSettings xdt:Transform="RemoveAttributes(file)"> 

, die nur an RemoveAttributes übergebene Attribute entfernt und den Rest der Konfiguration intakt lässt.

Weitere Informationen über mögliche Transformationsattribute können gelesen werden here