我有一个带有多个ConnectionStrings的Web.config
<connectionStrings>
<add name="connStr1" connectionString="...
<add name="ConnStr2" connectionString="...
<add name="connStr3" connectionString="...
有没有办法使用配置转换来删除特定的连接字符串?喜欢的东西:
<connectionStrings>
<xdt:Remove connStr2?
显然没有接近正确语法的地方,但是你得到了我的漂移......
答案 0 :(得分:99)
这将根据其名称删除特定的连接字符串。
<configuration>
<connectionStrings>
<add name="ConnStr2" xdt:Transform="Remove" xdt:Locator="Match(name)" connectionString=" " />
</connectionStrings>
</configuration>
请注意,connectionString
值不是空字符串,而是空格。任何非空值都可以。
答案 1 :(得分:63)
来自主题的MSDN documentation:
<configuration xmlns:xdt="...">
<connectionStrings>
<add xdt:Transform="Remove" />
</connectionStrings>
</configuration>
Transform="Remove"
是您正在寻找的魔力。还有一个Transform="RemoveAll"
,您可以将其与特定的添加一起使用。
修改强>
第二个想法,您也可以将Locator
attribute与上面定义的Remove
结合起来,以限制您真正要删除的元素。
更明确地说:
<configuration xmlns:xdt="...">
<connectionStrings>
<add xdt:Transform="Remove" xdt:Locator="XPath(configuration/connectionStrings[@name='ConnStr2'])" />
</connectionStrings>
</configuration>
或类似的应该有效。