Как удалить ConnectionString с помощью Config Transformations
У меня есть Web.config с несколькими ConnectionStrings
<connectionStrings>
<add name="connStr1" connectionString="...
<add name="ConnStr2" connectionString="...
<add name="connStr3" connectionString="...
Есть ли способ использования конфигурационных преобразований для удаления конкретной строки соединения? Что-то вроде:
<connectionStrings>
<xdt:Remove connStr2?
Очевидно, что нет рядом с правильным синтаксисом, но вы получаете мой дрейф...
Ответы
Ответ 1
Из документации 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>
Или подобное должно работать.
Ответ 2
Это приведет к удалению определенной строки подключения на основе ее имени.
<configuration>
<connectionStrings>
<add name="ConnStr2" xdt:Transform="Remove" xdt:Locator="Match(name)" connectionString=" " />
</connectionStrings>
</configuration>
Обратите внимание, что значение connectionString
не является пустой строкой, а является пробелом. Любое непустое значение будет делать.