Как вы удаляете/удаляете элемент из XML-файла в WiX?
Удаление элементов XML в WiX
Ответы (2)
Дан файл .config со следующим содержимым:
<configuration>
<thingy>
<stuff>
<item type='value' />
<item type='value2' />
</stuff>
</thingy>
</configuration>
Чтобы удалить элемент элемента с атрибутом типа, для которого установлено значение «значение», это, кажется, помогает:
<util:XmlConfig
On="install"
Action="delete"
Id="RemoveAnElement"
Node="element"
File="Application.dll.config"
VerifyPath="/configuration/thingy/stuff/item[\[]@type='value'[\]]"
ElementPath="/configuration/thingy/stuff"
Sequence="100"
/>
Этот элемент XmlConfig
определяется расширением Wix «Утилиты». Чтобы использовать это расширение, вы должны объявить пространство имен UtilExtension следующим образом:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
Вы также должны добавить -ext WixUtilExtension
к параметрам команды light.exe
или добавить ссылку на «WixUtilExtension.dll», если вы создаете проект wix, используя votive в Visual Studio.
-ext WixUtilExtension
к свече.
- person Chris; 03.01.2013
Я знаю, что это старо, но я везде искал свою проблему и никогда не мог ее найти, пока, наконец, не наткнулся на ответ. Так что, может быть, разместив здесь, кто-то найдет это полезным.
В дополнение к приведенному выше ответу, при использовании версии 4.0 ссылка xmlns:util должна выглядеть так:
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util" >
В противном случае вы получите ошибку:
The Component element contains an unhandled extension element 'util:Blah'. Please ensure that the extension for elements in the 'http:⁄⁄schemas.microsoft.com⁄wix⁄UtilExtension' namespace has been provided.