我正在研究的是,util:XmlConfig(或wix工具箱中的任何东西)是否可以以允许我在其父节点内的特定位置安装节点的方式使用。这是一个例子:
...
<parentNode parentAttr1="parent attr1 value">
<childNode childAttr1="child1 attr1 value" />
<childNode childAttr1="child2 attr1 value" />
</parentNode>
...
...
<parentNode parentAttr1="parent attr1 value">
<childNode childAttr1="child1 attr1 value" />
<childNode childAttr1="child2 attr1 value" />
</parentNode>
...
我想在两个孩子之间插入一个新节点,结果如下:
...
<parentNode parentAttr1="parent attr1 value">
<childNode childAttr1="child1 attr1 value" />
<childNode childAttr1="child3 attr1 value" />
<childNode childAttr1="child2 attr1 value" />
</parentNode>
...
我到目前为止的代码将新节点作为parentNode的最后一个子节点,如下所示:
...
<parentNode parentAttr1="parent attr1 value">
<childNode childAttr1="child1 attr1 value" />
<childNode childAttr1="child3 attr1 value" />
<childNode childAttr1="child2 attr1 value" />
</parentNode>
...
所以,简而言之。非常感谢任何帮助!
编辑:
关于这个主题的另一个问题是这个结构:
...
<util:XmlConfig
Id="MY_ID"
File="[PROPERTY_SQLRSPATH]ReportServer\rssrvpolicy.config"
Action="create"
On="install"
ElementPath="//parentNode"
Node="document"
Sequence="1">
<![CDATA[
<childNode childAttr1="child3 attr1 value" />
]]>
</util:XmlConfig>
...
...
<util:XmlConfig
Id="MY_ID"
File="[PROPERTY_SQLRSPATH]ReportServer\rssrvpolicy.config"
Action="create"
On="install"
ElementPath="//parentNode"
Node="document"
Sequence="1">
<![CDATA[
<childNode childAttr1="child3 attr1 value" />
]]>
</util:XmlConfig>
...
有没有办法在当前子元素之间插入另一个兄弟元素,以便最终结构看起来像这样?
...
<parentNode parentAttr1="parent attr1 value">
<Abc anAttr="a value" />
<Def someAttr="some value" />
</parentNode>
...
...
<parentNode parentAttr1="parent attr1 value">
<Abc anAttr="a value" />
<Def someAttr="some value" />
</parentNode>
...
答案 0 :(得分:1)
我发现通过wix工具无法做到这一点。我必须添加一个自定义操作,将元素放在我想要的位置,然后让安装程序添加我想要的详细信息。不是我认为很好,但现在工作,卸载也适用于此,虽然它留下了空元素。