Преобразование Web.config - недостающее руководство

Вы можете прочитать документацию web.config transformsВот а такжетам, но есть два белых слона, которых никто не обсуждает:

Как вы выполняете подстановку переменных вCondition или жеXPath преобразовать и ...МожетLocator бытьзначительно вложенный внутри?Transform

Позвольте мне привести пример, который выиграл бы от любого из этих вариантов. Предположим, у меня есть это:


  
    
      
      
    
    
      
      
    
  

Предположим, я хочу полностью стеретьdependentAssembly узел и его дочерние элементы, совпадающие с xpath//runtime/assemblyBinding/dependentAssembly[[email protected]='System.Web.Mvc'], Чтобы сделать это, я мог бы хотеть что-то вроде этого:


  
    
      
    
  

Ну, очевидно, я составил синтаксис@name=$name основанный напонятия переменных xpath, но этот пример демонстрирует, почему яЯ хочу эту функцию. Это поддерживается? Как я должен настроить свой синтаксис, чтобы воспользоваться этим? Я мог бы вставить строковый литерал, но я просто хочу знать, возможно ли это.

Другой способ, которым я мог бы попытаться удалитьdependentAssembly узел, с этим:


  
    
      
    
  

Обратите внимание наTransform находится на узле-прародителе, а локатор на конечном узле. Законно ли это? Идея состоит в том, чтобы удалить толькоdependantAssembly узел с внутренним соответствием локатора.

Помимо этих двух подходов, как бы вы удалили таргетинг?dependantAssembly и все его дочерние узлы?

Ответы на вопрос(3)

Решение Вопроса

@Thommy»Решение сработало для меня, и @LifeintheGrid 'В этом решении использовались фактические сборки, которые я хотел удалить, поэтому я объединил их и упростил, чтобы получить:

<runtime>
    <assemblybinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentassembly xdt:transform="RemoveAll" xdt:locator="Condition(starts-with(..VisualStudio.QualityTools'))">
        </dependentassembly>
    </assemblybinding>
</runtime>

ng.

Удаление ссылки AspNetHelper работает для меня с этим:

<runtime>
    <assemblybinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentassembly xdt:transform="Remove" xdt:locator="Condition(./_defaultNamespace:assemblyIdentity/@name='Microsoft.VisualStudio.Enterprise.AspNetHelper')">
        </dependentassembly>
    </assemblybinding>
</runtime>
 sebastiaan17 сент. 2013 г., 14:16
Это сработало и должно быть помечено как ответ на этот вопрос.

сборки.

<runtime>
  <assemblybinding>
    <!-- ending /dependentAssembly is required or tranforms fail -->
    <dependentassembly xdt:transform="Remove" xdt:locator="Condition(assemblyIdentity/@name='Microsoft.VisualStudio.QualityTools.HostAdapters.ASPNETAdapter')"></dependentassembly>
    <dependentassembly xdt:transform="Remove" xdt:locator="Condition(assemblyIdentity/@name='Microsoft.VisualStudio.QualityTools.Common')"></dependentassembly>
    <dependentassembly xdt:transform="Remove" xdt:locator="Condition(assemblyIdentity/@name='Microsoft.VisualStudio.QualityTools.ExecutionCommon')"></dependentassembly>
    <dependentassembly xdt:transform="Remove" xdt:locator="Condition(assemblyIdentity/@name='Microsoft.VisualStudio.QualityTools.Resource')"></dependentassembly>
  </assemblybinding>
</runtime>  

Ваш ответ на вопрос