transformation web.config: comment appliquer une transformation à tous noeud correspondant à une expression de localisation?
-
08-10-2019 - |
Question
Je l'ai récemment découvert la transformation web.config automatique dans l'outil de déploiement Web de Visual Studio 2010. Il fonctionne bien, mais j'ai un scénario que je ne peux pas sembler faire fonctionner. Je suppose que la racine suivante Web.config
<services>
<service name="Service1">
<endpoint address="" binding="customBinding" bindingConfiguration="LargeBufferBinding"
contract="Service1" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
<service name="Service2">
<endpoint address="" binding="customBinding" bindingConfiguration="LargeBufferBinding"
contract="Service2" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
<service name="Service3">
<endpoint address="" binding="customBinding" bindingConfiguration="LargeBufferBinding"
contract="Service3" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
Pour ma Web.Release.config, je veux tous les noeuds d'extrémité avec une liaison de mexHttpBinding à supprimer.
Je l'ai utilisé ce qui suit dans mon Web.Release.config:
<services>
<service>
<endpoint binding="mexHttpBinding" xdt:Locator="Match(binding)" xdt:Transform="Remove" />
</service>
</services>
Toutefois, cela ne supprime le premier match, dans le Service1, mais pas les suivantes. J'ai essayé différentes façons de localiser le noeud, sur le nœud de point final et le service, mais seul le premier match remplacé obtient jamais.
Est-il possible d'obtenir toutes les <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
à enlever?
Merci.
La solution
Je viens d'essayer cela et en utilisant RemoveAll au lieu de Supprimer semble faire l'affaire:
<services>
<service>
<endpoint binding="mexHttpBinding" xdt:Locator="Match(binding)" xdt:Transform="RemoveAll" />
</service>
</services>