Ich suche nach einer besseren Möglichkeit, ein XML zu patchen (eigentlich app.config
-Datei). Genauer gesagt muss ich etwas zum Abschnitt <appConfig>
hinzufügen (der möglicherweise nicht existiert), sowie einige <bindingRedirect>
Elemente zu passenden Einträgen.
Ich benötige dies auch als Kommandozeilen-Tool für eine einfachere Bereitstellung.
Ich habe darüber nachgedacht, das auf verschiedene Arten zu lösen:
<xd:node match="1">
, etc. Die Ad-hoc-Lösung ist die einfachste, aber ich finde es ein bisschen betrügen. Ich kenne XSLT nicht sehr gut, aber es klingt wie die beste Lösung ...
Was ist Ihrer Meinung nach das "beste Werkzeug für den Job?"
Sie können die folgenden XSLT-Befehlszeilenprogramme für Microsoft XSLT-Prozessoren verwenden:
msxsl .exe (ist seit fast 10 Jahren dort). Führt eine Transformation mit MSXML durch (Angabe verschiedener Versionen ist möglich).
Oleg Tkachenkos nxslt.exe Befehlszeilen-Dienstprogramm für XslCompiledTransform - Dies ist Teil des Mvp.Xml -Projekts.
Wenn Xslt eine Option wäre, könnten Sie MSBuild verwenden, um die Umwandlung in der Befehlszeile zu steuern.
Konfigurationsdatei app.config
%Vor%Xslt appconfig.xslt
Dieses Beispiel xslt würde alles aus Ihrer Quelle app.config kopieren und einen Knoten <appSetting />
hinzufügen, wenn es nicht existiert:
MSBuild-Skript appconfig.proj
Dieses Beispiel-MSBuild-Projektscript kopiert / sichert Ihre Quelle app.config und transformiert sie mit dem angegebenen xslt-Stylesheet.
%Vor%Ausführen von der Befehlszeile aus
<path to .NET framework 4>\MSBuild.exe appconfig.proj
Nach meiner Erfahrung könnte die Verwendung von XSLT funktionieren, aber bedenken Sie, dass Sie es auch beibehalten möchten. Es gibt ein gutes Werkzeug zum Erstellen von xslt visual namens MapForce , das ich in der Vergangenheit verwendet habe und das vielleicht helfen könnte.
Kürzlich bei der Arbeit musste ich eine ähnliche Aufgabe erledigen - XML-Datei von Format A in Format B konvertieren - mit Linq war der schnellste und einfachste warum und derzeit auch einfach zu pflegen.
Also mein Vorschlag ist, die simpelste Sache zu tun, die funktioniert und für schnelle Lösung geht, es sei denn, Sie haben klare Vorteile von der Verwendung von XSLT stattdessen.
Tags und Links .net command-line xml xslt linq-to-xml