Web.config transforms - el manual que falta

Puedes leer la documentación de transformaciones de web.config.aquí yahí, pero hay dos elefantes blancos que nadie parece discutir:

¿Cómo se realiza una sustitución variable en unaCondition oXPath transformar, y ...Puede unLocator sersignificativamente anidado dentro de unTransform?

Permítanme darles un ejemplo que se beneficiaría de cualquiera de esas opciones. Supongamos que tengo esto:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

Supongamos que quiero borrar completamente eldependentAssembly nodo, y sus hijos, que coincide con el xpath//runtime/assemblyBinding/dependentAssembly[assemblyIdentity@name='System.Web.Mvc']. Para hacer eso, podría querer algo como esto:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity 
          name="System.Web.Mvc" 
          xdt:Remove 
          xdt:Locator="Condition(..[*@name=$name])" 
      />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

Bueno obviamente hice la sintaxis.@name=$name Residencia enconceptos de variable xpath, pero este ejemplo demuestra por qué querría esa característica. ¿Esto es compatible? ¿Cómo debo ajustar mi sintaxis para aprovechar esto? Podría poner una cadena literal, pero solo quiero saber si esto es posible.

Otra forma en que podría tratar de eliminar ladependentAssembly nodo, es con esto:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" xdt:Transform="Remove">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" xdt:Locator="Match(name)" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

Observe laTransform está en un nodo principal y el localizador está en el nodo hoja. ¿Es legítimo lo anterior? La idea es eliminar sólo eldependantAssembly nodo que tiene una coincidencia de localizador interna.

Dejando de lado estos dos enfoques, ¿cómo eliminaría la orientación?dependantAssembly ¿Y todos sus nodos hijos?

Respuestas a la pregunta(3)

Su respuesta a la pregunta