Преобразование web.config - удаление комментариев из раздела строки подключения
Я храню несколько различных строк подключения в моем файле web.config для разработки и тестирования. Все, кроме одного, закомментированы, поэтому я могу менять информацию по мере необходимости.
Когда я публикуюсь, я хочу заменить все (включая комментарии) в узле connectionStrings следующим образом:
<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)"/>
Но я не знаю, как убрать комментарии, которые я не хочу, и добавить комментарий, который я хочу.
Есть идеи?
4 ответа
Вместо преобразования строки или использования "Удалить" и "Вставить" очистите раздел, попробуйте использовать "Заменить".
Например:
<connectionStrings xdt:Transform="Replace">
<add name="myDb"
connectionString="Data Source={SERVER};Initial Catalog=ManEx;User Id={USER};Password={PASSWORD};"
providerName="System.Data.SqlClient" />
</connectionStrings>
Вы можете настроить этот раздел именно так, как вы хотите, даже если это означает, что вы добавляете новые комментарии.
На основании этого ответа я сделал следующее:
- Удалены существующие
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>
В Visual Studio 2013 у вас может быть несколько файлов Web.config.
Также, когда вы создаете новый проект, VS создает для вас 2: Web.Debug.config и Web.Release.config. Таким образом, вы можете иметь другой Web.Config для вашего проекта отладки и для вашего проекта релиза
Если вам нужно добавить / вставить / установить атрибуты внутри замененной строки подключения (например, если вы используете развертывания), вы можете вложить преобразования, чтобы удалить комментарии и заменить атрибуты:
<connectionStrings xdt:Transform="Replace">
<add name="connectionDatabase"
connectionString="#{ConnectionString}"
xdt:Transform="SetAttributes"
xdt:Locator="Match(name)" />
</connectionStrings>