2

我正在研究的是是否可以使用 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="child3 attr1 value" />
    <childNode childAttr1="child2 attr1 value" />
</parentNode>
...

到目前为止,我的代码会将新节点作为 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>
...

所以,简而言之。非常感谢您对此的任何帮助!

编辑:这个主题的另一个皱纹将被赋予这种结构:

...
<parentNode parentAttr1="parent attr1 value">
    <Abc anAttr="a value" />
    <Def someAttr="some value" />
</parentNode>
...

有没有办法在当前子元素之间插入另一个兄弟元素,使最终结构看起来像这样?

...
<parentNode parentAttr1="parent attr1 value">
    <Abc anAttr="a value" />
    <Ghi YaAttr="yet another value" />
    <Def someAttr="some value" />
</parentNode>
...

4

1 回答 1

1

我发现没有办法通过 wix 工具来做到这一点。我必须添加一个自定义操作,将元素放置在我想要的位置,然后让安装程序添加我想要的详细信息。不是我认为很好,但现在可以使用,并且卸载也可以使用它,尽管它会保留空元素。

于 2013-05-13T22:54:09.097 回答