web-dev-qa-db-fra.com

Transformation de configuration Web pour ajouter un élément enfant

J'ai la configuration suivante dans web.config:

  <resizer>
    <sizelimits imageWidth="0" />
    <plugins>
      <add name="MvcRoutingShim" />
      <!--<add name="AzureReader" connectionString="DataConnectionString" /> -->
      <add name="DiskCache" />
      <add name="PrettyGifs" />
      <add name="AnimatedGifs" />
    </plugins>
  </resizer>

Dans web.config.Release, comment puis-je ajouter l'élément AzureReader en tant qu'enfant de l'élément plugins (décommenter efficacement ce qui précède)?

Je sais comment faire des transformations de base, mais je ne l'ai jamais fait auparavant.

96
Ben Foster

Vous pouvez utiliser la transformation Insert:

 <resizer>
    <plugins>
      <add name="AzureReader" connectionString="DataConnectionString" 
           xdt:Transform="Insert" />
    </plugins>
  </resizer>

Syntaxe de transformation Web.config pour le déploiement de projet d'application Web

189
jrummell

Si vous voulez le faire en utilisant XSLT, voici quelques conseils car je n'ai pas le temps pour le moment de l'assommer.

  1. Recherchez la transformation d'identité. Cela vous donnera un XSLT simple qui reproduit exactement ce qui se lit.
  2. Ajoutez un modèle au-dessus des modèles génériques avec la correspondance suivante match="add[@name='MvcRoutingShim']"
  3. À l'intérieur du modèle, affichez l'élément que vous traitez à l'aide de xsl:copy, puis affichez l'élément AzureReader add

Cela devrait vous permettre de continuer.

Assurez-vous que vous disposez d'un éditeur XML qui vous permet de faire des transformations afin de pouvoir expérimenter localement jusqu'à ce que vous obteniez le bon résultat.

0
Jim Keeney