Ich möchte eine Transformation anwenden, wenn und nur wenn ein übereinstimmendes Element nicht im Ziel vorhanden ist. Versuche verschiedene XPath-Ausdrücke mit http://webconfigtransformationtester.apphb.com/, aber bisher kein Glück.Web Config Transforms: Einfügen, wenn nicht vorhanden
z. wenn das Ziel web.config wie folgt aussieht:
<configuration>
<system.web>
<compilation debug="true" />
</system.web>
</configuration>
dann sollte die Ausgabe wie folgt aussehen:
<configuration>
<connectionStrings>
<add name="MyCs" provider="System.Data.SqlClient" connectionString="" />
<add name="SomeOtherCs" provider="System.Data.SqlClient" connectionString="" />
</connectionStrings>
<system.web>
<compilation debug="true" />
</system.web>
</configuration>
Aber wenn das Ziel wie folgt aussieht:
<configuration>
<connectionStrings>
<add name="MyCs" provider="System.Data.IChangedIt" connectionString="my connection string here" />
</connectionStrings>
<system.web>
<compilation debug="true" />
</system.web>
</configuration>
dann das Ergebnis der Transformation sollte wie folgt aussehen:
<configuration>
<connectionStrings>
<add name="MyCs" provider="System.Data.IChangedIt" connectionString="my connection string here" />
<add name="SomeOtherCs" provider="System.Data.SqlClient" connectionString="" />
</connectionStrings>
<system.web>
<compilation debug="true" />
</system.web>
</configuration>
Mit anderen Worten, ich möchte nur die angegebene Verbindungszeichenfolge zur Konfiguration hinzufügen, aber den Administrator mit seinen eigenen Werten füllen. Ich dachte, es wäre so einfach wie xdt:Transform="Insert" xdt:Locator="XPath(count(/configuration/connectionStrings)=0)"
(um eine CS Config-Sektion hinzuzufügen, wenn keine existierte), aber anscheinend nicht.
haben Sie versucht, 'xdt: Locator = "XPath (/ Konfiguration [nicht (connection)])"'? – collapsar
mögliches Duplikat von [Gibt es eine Möglichkeit, "Ersetzen oder Einfügen" mit der web.config-Umwandlung durchzuführen?] (Http://stackoverflow.com/questions/5732681/is-there-any-way-to-do-a -replace-oder-einfügen-mit-web-config-Transformation) –