Я пытаюсь вставить элемент 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>
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.2018xdt:Locator="Condition(*[local-name() = 'assemblyIdentity']/@name='System.Web.Extensions')"
- person Martin Honnen   schedule 11.01.2018