Как использовать xdt:locator по условию в преобразовании Web.config

Я пытаюсь вставить элемент dependAssembly в свою конфигурацию, где дочерний элемент AssemblyIdentity еще не существует. Однако я получаю следующую ошибку

Ни один элемент в исходном документе не соответствует '/configuration/runtime/_defaultNamespace:assemblyBinding/_defaultNamespace:dependentAssembly[assemblyIdentity/@name='System.Web.Extensions']'

Ниже соответствующий фрагмент моего файла конфигурации и файла преобразования. Есть ли здесь гуру Xslt, которые могли бы помочь?

Образец преобразования

<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
   <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly xdt:Transform="InsertIfMissing" xdt:Locator="Condition(assemblyIdentity/@name='System.Web.Extensions')">
        <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" xdt:Transform="SetAttributes" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Пример конфигурации

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
<configuration>

person PatrickNolan    schedule 10.01.2018    source источник
comment
Я не знаю, как это связано с XSLT, но, очевидно, учитывая, что элемент assemblyIdentity находится в том же пространстве имен, что и родительский элемент, и прародитель, маловероятно, что путь /configuration/runtime/_defaultNamespace:assemblyBinding/_defaultNamespace:dependentAssembly[assemblyIdentity/@name='System.Web.Extensions'] выбирает элемент, я ожидаю, что это будет, например. /configuration/runtime/_defaultNamespace:assemblyBinding/_defaultNamespace:dependentAssembly[_defaultNamespace:assemblyIdentity/@name='System.Web.Extensions'].   -  person Martin Honnen    schedule 11.01.2018
comment
Не уверен, где вы можете указать это в своем файле, но вы можете вернуться к написанию независимого от синтаксиса условия xdt:Locator="Condition(*[local-name() = 'assemblyIdentity']/@name='System.Web.Extensions')"   -  person Martin Honnen    schedule 11.01.2018
comment
Я только что получил ответ на аналогичный вопрос, в основном вы должны учитывать пространство имен в вашем состоянии: stackoverflow.com/questions/54185439/   -  person Ofir    schedule 16.01.2019