Подтвердить что ты не робот

Как удалить ConnectionString с помощью Config Transformations

У меня есть Web.config с несколькими ConnectionStrings

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

Есть ли способ использования конфигурационных преобразований для удаления конкретной строки соединения? Что-то вроде:

<connectionStrings>
    <xdt:Remove connStr2?

Очевидно, что нет рядом с правильным синтаксисом, но вы получаете мой дрейф...

4b9b3361

Ответ 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 не является пустой строкой, а является пробелом. Любое непустое значение будет делать.