7

¿Es posible incluir variables en un archivo de transformación web.config? Para cada entorno, básicamente tengo la misma transformación, solo que con diferentes valores. Por ejemplo, para el entorno de desarrollo, tendría ...Variables de transformación Web.config

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <appSettings> 
     <add key="serverName" value="server1" xdt:Transform="Replace" xdt:Locator="Match(key)" /> 
     <add key="serverPath" value="\\server1" xdt:Transform="Replace" xdt:Locator="Match(key)" /> 
    </appSettings> 
</configuration> 

Y para el entorno de control de calidad, tendría ...

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <appSettings> 
     <add key="serverName" value="server2" xdt:Transform="Replace" xdt:Locator="Match(key)" /> 
     <add key="serverPath" value="\\server2" xdt:Transform="Replace" xdt:Locator="Match(key)" /> 
    </appSettings> 
</configuration> 

La única diferencia es el valor para server1 vs servidor2. Este es un ejemplo simple, y en realidad, utilizo el valor del servidor varias veces en la transformación. ¿Hay alguna manera de declarar una variable en el archivo de transformación que se utilizará varias veces? Algo como ...

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <property name="server" value="server2" /> 
    <appSettings> 
     <add key="serverName" value="${server}" xdt:Transform="Replace" xdt:Locator="Match(key)" /> 
     <add key="serverPath" value="\\${server}" xdt:Transform="Replace" xdt:Locator="Match(key)" /> 
    </appSettings> 
</configuration> 

Respuesta

4

esto no es compatible con las transformaciones web.config. Una cosa que podrías echarle un vistazo es crear un T4 Template que se pueda usar para generar tus transformaciones web.config. Entonces, la idea es que coloque las variables en la plantilla T4 y escupirá web.debug.config/web.release.config/etc. Luego, al empaquetar/publicar, solo recuperará el archivo de transformación que se produjo como salida T4.

No me importaría ayudarle con algo así si puede proporcionar algunos ejemplos concretos de que esto es útil.

Cuestiones relacionadas