web-dev-qa-db-ja.com

構成変換を使用してConnectionStringを削除する方法

複数のConnectionStringsを持つWeb.configがあります

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

構成変換を使用して特定の接続文字列を削除する方法はありますか?何かのようなもの:

<connectionStrings>
    <xdt:Remove connStr2?

明らかに正しい構文に近いところはありませんが、あなたは私のドリフトを取得します...

65
Didaxis

件名の MSDNドキュメント から:

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

Transform="Remove"はあなたが探している魔法です。特定のaddと組み合わせて使用​​できるTransform="RemoveAll"もあります。

[〜#〜] edit [〜#〜]

考え直して、 Locator属性 を上記で定義したRemoveと組み合わせて、実際に削除する要素を制限することもできます。

より明確に:

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

または同様に動作するはずです。

66
M.Babcock

これにより、名前に基づいて特定の接続文字列が削除されます。

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

connectionString値は空の文字列ではなく、スペースであることに注意してください。空ではない値であれば何でも可能です。

101
hyke20