wake-up-neo.com

So entfernen Sie einen ConnectionString mit Config Transformations

Ich habe eine Web.config mit mehreren ConnectionStrings

<connectionStrings>
    <add name="connStr1" connectionString="...
    <add name="ConnStr2" connectionString="...
    <add name="connStr3" connectionString="...

Gibt es eine Möglichkeit, mithilfe von Konfigurationsumwandlungen eine bestimmte Verbindungszeichenfolge zu entfernen? Etwas wie:

<connectionStrings>
    <xdt:Remove connStr2?

Offensichtlich nicht annähernd die richtige Syntax, aber Sie bekommen meine Abweichung ...

65
Didaxis

Aus der MSDN-Dokumentation zum Thema:

<configuration xmlns:xdt="...">
  <connectionStrings>
    <add xdt:Transform="Remove" />
  </connectionStrings>
</configuration>

Das Transform="Remove" ist die Magie, die Sie suchen. Da ist auch ein Transform="RemoveAll", das Sie möglicherweise in Verbindung mit einem bestimmten Add (s) verwenden können.

[~ # ~] edit [~ # ~]

Auf den zweiten Blick können Sie möglicherweise auch das Locator-Attribut mit dem oben definierten Remove kombinieren, um einzugrenzen, welche Elemente Sie tatsächlich löschen möchten.

Genauer gesagt:

<configuration xmlns:xdt="...">
  <connectionStrings>
    <add xdt:Transform="Remove" xdt:Locator="XPath(configuration/connectionStrings[@name='ConnStr2'])" />
  </connectionStrings>
</configuration>

Oder ähnlich sollte funktionieren.

66
M.Babcock

Dadurch wird eine bestimmte Verbindungszeichenfolge basierend auf ihrem Namen entfernt.

<configuration>
  <connectionStrings> 
    <add name="ConnStr2" xdt:Transform="Remove" xdt:Locator="Match(name)" connectionString=" " /> 
  </connectionStrings> 
</configuration>

Beachten Sie, dass der Wert connectionString keine leere Zeichenfolge ist, sondern ein Leerzeichen. Jeder nicht leere Wert würde ausreichen.

101
hyke20