Я пытаюсь использовать Microsoft.Web.XmlTransform.dll для обновления XML-документа. Мне нужно вставить новый элемент сборки, если элемент с дочерним элементом не имеет соответствующего имени атрибута.
Transform:
<config>
<assembly xdt:Transform="Insert" xdt:Locator="Condition(./assembly/file/@name!='qux.dll')>
<file name='qux.dll>
</assembly>
</config>
Исходная конфигурация:
<config>
<assembly>
<file name='foo.dll>
</assembly>
<assembly>
<file name='bar.dll>
</assembly>
<assembly>
<file name='qux.dll>
</assembly>
</config>
Выход:
<config>
<assembly>
<file name='foo.dll>
</assembly>
<assembly>
<file name='bar.dll>
</assembly>
<assembly>
<file name='qux.dll>
</assembly>
<assembly>
<file name='qux.dll>
</assembly>
</config>
Ожидаемый результат:
<config>
<assembly>
<file name='foo.dll>
</assembly>
<assembly>
<file name='bar.dll>
</assembly>
<assembly>
<file name='qux.dll>
</assembly>
</config>
Я предполагаю, что xdt: Locator = "Условие (./ assembly/file/@name!='qux.dll ') неверно, но я не могу заставить его работать должным образом.