【发布时间】:2021-03-04 16:31:56
【问题描述】:
如何使用 WIX XmlConfig 从此列表中删除“DrawListAddin”?
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance">
<string>ExplorerAddin</string>
<string>DrawListAddin</string>
<string>MyDataAddin</string>
</ArrayOfString>
结果应该是这样的
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance">
<string>ExplorerAddin</string>
<string>MyDataAddin</string>
</ArrayOfString>
我尝试了多种设置,但没有任何效果.. 最后一个版本看起来像这样。搜索正确的项目,然后将其删除。 XML 文件被修改但没有变化。
<util:XmlConfig Id='XmlSettingsRemove'
On="install"
File='[E3D31_INSTALL_DIR]DesignAddins.xml'
Node='element'
Action='delete'
VerifyPath="//*[\[]text() [\[]contains(.,'DrawListAddin')[\]][\]]"
ElementPath="//ArrayOfString"
Sequence='1'
/>
此代码会带来一条错误消息,指出无法找到节点,但末尾的“/..”显式选择了正确的父节点
<util:XmlConfig Id='XmlSettingsRemove'
On="install"
File='[E3D31_INSTALL_DIR]DesignAddins.xml'
Node='element'
Action='delete'
VerifyPath="/ArrayOfString/string[\[]text()[\[]contains(.,'DrawListAddin')[\]][\]]"
ElementPath="/ArrayOfString/string[\[]text()[\[]contains(.,'DrawListAddin')[\]][\]]/.."
Sequence='1'
/>
【问题讨论】:
标签: wix