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

Преобразование 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)"/>

Но я не знаю, как очистить комментарии, которые я не хочу, и добавить комментарий, который я хочу.

Любые идеи?

4b9b3361

Ответ 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>