Как изменить значение атрибута в разделе appSettings с помощью Web.преобразование конфигурации

можно ли преобразовать следующую сеть.файл конфигурации appSettings:

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


вы хотите что-то вроде:

<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 для развертывания проекта веб-приложения


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

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

теперь вот веб.Освобождать.config для трансформации.

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

это преобразует значение K1 в новое значение в режиме реального времени.


замена всех AppSettings

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

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

Теперь в моей сети.освобождать.файл конфигурации, я собираюсь создать раздел appSettings, за исключением того, что я включу атрибут xdt:Transform= "Replace", так как я хочу просто заменить весь элемент. Мне не нужно было использовать xdt:Locator, потому что нечего искать – я просто хочу стереть шифер и заменить все.

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

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

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

как мы и ожидали – в интернете.config appSettings были полностью заменены по значениям в интернете.релиз конфигурации. Это было просто!