Как изменить значение атрибута в разделе appSettings с преобразованием Web.config

Можно ли преобразовать следующий файл app.ettings Web.config:

<appSettings>
    <add key="developmentModeUserId" value="00297022" />
    <add key="developmentMode" value="true" />
    /* other settings here that should stay */
</appSettings>

во что-то вроде этого:

<appSettings>
    <add key="developmentMode" value="false" />
    /* other settings here that should stay */
</appSettings>

Итак, мне нужно удалить ключdevelopmentModeUserIdи мне нужно заменить значение на ключdevelopmentMode.

Ответы на вопрос(3)

рации в файл web.Release.config, вам необходимо выполнить следующие шаги. Пусть ваш файл настроек приложения web.config это

<appSettings>
     <add key ="K1" value="Debendra Dash"/>
  </appSettings>

Теперь вот web.Release.config для преобразования.

<appSettings>
    <add key="K1" value="value dynamicly from Realease"
       xdt:Transform="SetAttributes"
          xdt:Locator="Match(key)"   
         />
  </appSettings>

Это преобразует значение K1 в новое значение в режиме возврата.

Решение Вопроса

<appSettings>
  <add key="developmentModeUserId" xdt:Transform="Remove" xdt:Locator="Match(key)"/>
  <add key="developmentMode" value="false" xdt:Transform="SetAttributes"
          xdt:Locator="Match(key)"/>
</appSettings>

Смотрите также:Синтаксис преобразования Web.config для развертывания проекта веб-приложения

 03 окт. 2013 г., 19:10
Обратите внимание, что ключи чувствительны к регистру!
 14 авг. 2015 г., 22:53
Отличный ответ. Я пробовал сторонние варианты, такие как «Медленный гепард», и ничего не добился - это было просто и идеально.
 11 апр. 2016 г., 23:45
@stevens: вам нужен Slow Cheetah, если вы хотите преобразовать, скажем, файлы app.config для нативных приложений. Синтаксис, однако, должен быть идентичным, если я помню (это было некоторое время, так как я должен был использовать медленного гепарда).
 05 окт. 2017 г., 01:40
альтернатива медленному читеру - создать myotherconfig.staging.config и в преобразовании web.Staging.config преобразовать ссылку на myotherconfig.config в web.config.
 26 июн. 2018 г., 16:40
Небольшое уточнение, которое может помочь некоторым людям:xdt:Transform="SetAttributes" xdt:Locator="Match(key)" часть должна использоваться в файле Web.Whwhat.config, а не в файле Web.config.

Replacing all AppSettings

Это тот случай, когда вы просто хотите заменить целый раздел web.config. В этом случае я заменю все AppSettings в web.config на новые настройки в web.release.config. Это мой базовый web.config appSettings:

<appSettings>
  <add key="KeyA" value="ValA"/>
  <add key="KeyB" value="ValB"/>
</appSettings>

Теперь в моем файле web.release.config я собираюсь создать раздел appSettings, за исключением того, что я включу атрибут xdt: Transform = & # x201D; Replace & # x201D; так как я хочу просто заменить весь элемент. Мне не нужно было использовать xdt: Locator, потому что нечего искать & # x2013; Я просто хочу вытереть планшет и заменить все.

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

Обратите внимание, что в файле web.release.config мой раздел appSettings содержит три ключа вместо двух, и ключи даже не совпадают. Теперь давайте посмотрим на сгенерированный файл web.config, что происходит, когда мы публикуем:

<appSettings>
   <add key="ProdKeyA" value="ProdValA"/>
   <add key="ProdKeyB" value="ProdValB"/>
   <add key="ProdKeyC" value="ProdValC"/>
 </appSettings>

Как мы и ожидали & # x2013; appSettings web.config были полностью заменены значениями в конфигурации web.release. Это было просто!

Ваш ответ на вопрос