8

Recientemente descubrí la transformación automática web.config en la herramienta de despliegue web de visual studio 2010. Está funcionando bien, pero tengo un escenario en el que parece que no puedo trabajar. Supongamos que tengo la siguiente Web.config raízTransformación web.config: ¿cómo aplicar una transformación a todos los nodos que coincidan con una expresión de localizador?

<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> 

Por mi Web.Release.config, quiero todos los nodos de punto final con una unión de mexHttpBinding a ser eliminado.

He utilizado el siguiente en mi Web.Release.config:

<services> 
    <service> 
    <endpoint binding="mexHttpBinding" xdt:Locator="Match(binding)" xdt:Transform="Remove" /> 
    </service> 
</services> 

Sin embargo, esto sólo se eliminará el primer partido, en el Service1, pero no los siguientes. He intentado varias formas de localizar el nodo, en el punto final y en el nodo de servicio, pero solo se reemplaza la primera coincidencia.

¿Hay alguna manera de eliminar todo <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />?

Gracias.

+0

Clemente al igual que una nota usted debe aceptar la respuesta más adelante en lugar de hacer comentarios al respecto. –

Respuesta

12

He intentado esto y usando en lugar de RemoveAll Quitar parece hacer el truco:

<services> 
    <service> 
    <endpoint binding="mexHttpBinding" xdt:Locator="Match(binding)" xdt:Transform="RemoveAll" /> 
    </service> 
</services> 
+0

Eso lo hizo. Gracias ! – Clement

+0

¿Hay algo similar que funcione para Insertar todo? InsertAll no es reconocido. – grimus

+0

@grimus ¿encontró alguna solución a la pregunta "Insertar todo"? –

Cuestiones relacionadas