80

いくつかの ConnectionStrings を持つ Web.config があります

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

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

<connectionStrings>
    <xdt:Remove connStr2?

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

4

2 に答える 2

120

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

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

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

于 2012-01-30T11:45:09.437 に答える
85

件名に関するMSDNのドキュメントから:

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

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

編集

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

より明確に:

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

または同様のものが機能するはずです。

于 2012-01-19T03:14:25.280 に答える