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

Как изменить параметр web.config с помощью синтаксиса преобразования?

У меня есть значение, хранящееся в моем файле web.config, который я хотел бы изменить, когда сайт будет опубликован. Я хочу изменить его с TEST на LIVE.

<appSettings>
    <add key="RequestMode" value="TEST" />
    // other keys here
</appSettings>

Возможно ли это с использованием синтаксиса преобразования web.config? Если да, то как?

Спасибо.

4b9b3361

Ответ 1

Да, это возможно с синтаксисом преобразования. Это преобразование должно сделать трюк:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <appSettings>
    <add key="RequestMode" value="LIVE" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
  </appSettings>
</configuration>

Ответ 2

Это возможно из коробки с помощью Visual Studio 2010. Единственное предупреждение - этот процесс выполняется из Visual Studio, когда вы используете объекты публикации в нем. Вы не сможете получить это преобразование из MSBuild (что затрудняет автоматическую сборку).

<appSettings xdt:Transform="Replace">  <add key="ProdKeyA" value="ProdValA"/>  <add key="ProdKeyB" value="ProdValB"/>  <add key="ProdKeyC" value="ProdValC"/></appSettings>

Источник: Преобразование Web.Config VS 2010

Также убедитесь, что ваш файл трансакций Web.Config.XXXX соответствует определению вашей сборки. Например, debug и release поддерживаются по умолчанию, поэтому вам нужно будет иметь Web.Config.Release, чтобы настроить Web.Config при публикации в режиме выпуска.

Ответ 3

Я нашел код ниже в http://mundrisoft.com/tech-bytes/web-config-transformation-for-project-deployment/, который работал:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add name="MyDB" 
      connectionString="ReleaseSQLServer" 
      xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>
</configuration

Ответ 4

Вы также можете использовать инструмент CTT для выполнения веб-преобразования Веб-сайт CTT Затем вы можете опубликовать свои файлы, прежде чем развертывание с помощью powershell может преобразовать веб-конфигурацию (сохранение файла преобразования), а затем просто изменить имя во время развертывания