asp.net - transforms - web.config transform
¿Cómo cambio una configuración web.config usando la sintaxis de transformación? (4)
Encontré el código siguiente en http://mundrisoft.com/tech-bytes/web-config-transformation-for-project-deployment/ , que estaba funcionando:
<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
Tengo un valor almacenado en mi archivo web.config que me gustaría cambiar cuando se publique el sitio. Quiero cambiarlo de TEST a LIVE.
<appSettings>
<add key="RequestMode" value="TEST" />
// other keys here
</appSettings>
¿Es esto posible usando la sintaxis de transformación web.config? ¿Si es así, cómo?
Gracias.
Esto es posible fuera de la caja usando Visual Studio 2010. La única advertencia es que este proceso se ejecuta desde Visual Studio cuando usa las funciones de publicación dentro de él. No obtendrá la capacidad de obtener esta transformación de MSBuild (lo que dificulta las construcciones automatizadas).
<appSettings xdt:Transform="Replace"> <add key="ProdKeyA" value="ProdValA"/> <add key="ProdKeyB" value="ProdValB"/> <add key="ProdKeyC" value="ProdValC"/></appSettings>
Fuente: Web.Config Transformations VS 2010
También asegúrese de que su archivo de transformación Web.Config.XXXX coincida con su definición de compilación. Por ejemplo, la depuración y el lanzamiento son compatibles de forma predeterminada, por lo que necesitaría tener un Web.Config.Release para ajustar el Web.Config al publicar en modo de lanzamiento.
Sí, esto es posible con la sintaxis de transformación. Esta transformación debería hacer el truco:
<?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>
También puede usar la herramienta CTT para realizar la transformación web. El sitio web de CTT puede, luego de publicar sus archivos, antes de que la implementación mediante powershell pueda transformar la configuración web (mantener un archivo de transformación) y luego simplemente cambiar el nombre durante la implementación.