¿Es posible transformar el siguiente archivo Web.config appSettings:
<appSettings>
<add key="developmentModeUserId" value="00297022" />
<add key="developmentMode" value="true" />
/* other settings here that should stay */
</appSettings>
en algo como esto:
<appSettings>
<add key="developmentMode" value="false" />
/* other settings here that should stay */
</appSettings>
Entonces, necesito eliminar la clave developmentModeUserId , y necesito reemplazar el valor de la clave developmentMode .
c#
asp.net
.net
web-config
libélula
fuente
fuente
xdt:Transform="SetAttributes" xdt:Locator="Match(key)"
parte debe usarse en Web.Whatever.config y no en el archivo Web.config.Reemplazar todas las configuraciones de aplicaciones
Este es el caso excesivo en el que solo desea reemplazar una sección completa de web.config. En este caso, reemplazaré todos los AppSettings en web.config con la nueva configuración en web.release.config. Esta es mi aplicación web.config de línea de base
Ahora en mi archivo web.release.config, voy a crear una sección de Ajustes de aplicaciones, excepto que incluiré el atributo xdt: Transform = "Reemplazar" ya que solo quiero reemplazar todo el elemento. No tuve que usar xdt: Locator porque no hay nada que localizar, solo quiero limpiar la pizarra y reemplazar todo.
Tenga en cuenta que en el archivo web.release.config, la sección Configuración de mi aplicación tiene tres claves en lugar de dos, y las claves ni siquiera son las mismas. Ahora echemos un vistazo al archivo web.config generado qué sucede cuando publicamos:
Justo como esperábamos: la configuración de la aplicación web.config se reemplazó completamente por los valores en la configuración de web.release. ¡Eso fue fácil!
fuente
Si desea realizar la transformación de la configuración de su aplicación desde el archivo de configuración web a web.Release.config, debe realizar los siguientes pasos. Deje que el archivo de configuración de la aplicación web.config sea este:
Ahora aquí está la web.Release.config para la transformación.
Esto transformará el valor de K1 en el nuevo valor en modo real.
fuente
No me gusta que las transformaciones tengan más información de la necesaria. Entonces, en lugar de restablecer las claves, simplemente declaro la condición y la intención . Es mucho más fácil ver la intención cuando se hace así, al menos en mi opinión. Además, trato de poner todos los
xdt
atributos primero para indicar al lector, estas son transformaciones y no cosas nuevas que se están definiendo.En lo anterior, es mucho más fácil ver que el primero está eliminando el elemento. El segundo es establecer atributos. Establecerá / reemplazará cualquier atributo que defina aquí. En este caso, simplemente se establecerá
value
enfalse
.fuente