Преобразование web.config - удаление комментариев из раздела connectionstring
Я храню несколько разных строк подключения в своем web.config для разработки и тестирования. Все, кроме одного, закомментированы, поэтому я могу изменить информацию по мере необходимости.
Когда я публикую, я хотел бы заменить все (включая комментарии) в connectionStrings node следующим образом:
<add name="myDb" connectionString="Data Source={SERVER};Initial Catalog=ManEx;User Id={USER};Password={PASSWORD};" providerName="System.Data.SqlClient" />
<!--<add name="myDb" connectionString="Data Source={SERVER};Initial Catalog=ManEx;Integrated Security=True" providerName="System.Data.SqlClient" />-->
Я знаю, как изменить активную строку следующим образом:
<add name="myDb"
connectionString="Data Source={SERVER};Initial Catalog=ManEx;User Id={USER};Password={PASSWORD};"
providerName="System.Data.SqlClient"
xdt:Transform="Add"
xdt:Locator="Match(name)"/>
Но я не знаю, как очистить комментарии, которые я не хочу, и добавить комментарий, который я хочу.
Любые идеи?
Ответы
Ответ 1
Вместо преобразования строки или использования "Удалить" и "Вставить" очистить раздел попробуйте использовать "Заменить".
Например:
<connectionStrings xdt:Transform="Replace">
<add name="myDb"
connectionString="Data Source={SERVER};Initial Catalog=ManEx;User Id={USER};Password={PASSWORD};"
providerName="System.Data.SqlClient" />
</connectionStrings>
Вы можете настроить этот раздел именно так, как вы хотите, даже если это означает, что вы добавляете новые комментарии.
Ответ 2
Что я сделал на основе этого ответа, было следующее:
- Удален существующий раздел
connectStrings
в Web.config
, который содержит закомментированные строки подключения, используемые во время отладки;
- Добавлен раздел
connectionStrings
с правильной строкой соединения, которая будет использоваться при развертывании приложения.
Итак, в вашем файле преобразования Web.config
у вас есть что-то вроде этого:
<!-- Removes the existing connectionStrings section which contains internal connection strings used for debugging -->
<connectionStrings xdt:Transform="Remove">
</connectionStrings>
<!-- Re-adding the existing connectionStrings section -->
<connectionStrings xdt:Transform="Insert">
<add name="MyConnectionStringName" connectionString="Data Source=CLUSTERSQL;Initial Catalog=MyDatabase;Integrated Security=True;multipleactiveresultsets=True" providerName="System.Data.SqlClient" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
Ответ 3
В Visual Studio 2013 вы можете иметь несколько файлов Web.config.
Кроме того, при создании нового проекта VS создает 2 для вас: Web.Debug.config и Web.Release.config. Таким образом, у вас может быть другой Web.Config для вашего проекта отладки и для вашего проекта выпуска
Ответ 4
Если вам нужно добавить/вставить/установить атрибуты внутри замененной строки подключения (например, если вы используете развертывания), вы можете вложить преобразования, чтобы удалить комментарии и заменить атрибуты:
<connectionStrings xdt:Transform="Replace">
<add name="connectionDatabase"
connectionString="#{ConnectionString}"
xdt:Transform="SetAttributes"
xdt:Locator="Match(name)" />
</connectionStrings>