Преобразование Web.config: как применить преобразование ко всем узлам, соответствующим выражению локатора?

Я недавно обнаружил автоматическое преобразование web.config в инструменте веб-развертывания Visual Studio 2010. Он работает хорошо, но у меня есть сценарий, который, похоже, не работает. Предположим, у меня есть следующий корневой файл 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>

. Для моего Web.Release.config я хочу, чтобы все узлы конечных точек с привязкой mexHttpBinding были удалены.

Я использовал следующее в моем Web.Release.config:

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

Однако это удалит только первое совпадение в Service1, но не следующие. Я пробовал различные способы определения местоположения узла на конечной точке и на сервисном узле, но заменяется только первое совпадение.

Есть ли способ получить все на удаление?

Спасибо.

8
задан Code Maverick 22 December 2014 в 23:04
поделиться