【问题标题】:InstallShield XML File MergeInstallShield XML 文件合并
【发布时间】:2014-08-18 15:42:14
【问题描述】:

我在我的安装程序中使用了一个配置 XML 文件,当用户升级我的安装程序时,我需要将生成的新配置文件与之前的配置文件合并, 所以它应该保存用户对以前的配置文件所做的更改+它还应该显示新的配置文件更改并且所有都很好地合并。

我使用InstallShield XML文件更改选项,但是当我更改已安装配置文件中的一些内容并升级软件时,它没有合并内容,而是在新的xml文件中添加了一个重复节点。

以下是正在发生的事情: 原始 XML 文件:

    <?xml version="1.0"?>
    <configuration>
   <startup useLegacyV2RuntimeActivationPolicy="true"><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
    </configuration>

用户手动修改useLegacyV2RuntimeActivationPolicy="false",当用户升级软件后,xml变为

 <?xml version="1.0" encoding="UTF-8"?>
         <configuration>
       <startup useLegacyV2RuntimeActivationPolicy="false">
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0">               </supportedRuntime>
</startup>
 <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"></supportedRuntime>
</startup>
</configuration>

所以基本上,它是复制节点而不是合并它,installShield有什么办法,我们可以处理XML配置文件Merges。

提前致谢

【问题讨论】:

    标签: windows-installer installshield


    【解决方案1】:

    当您使用 InstallShield XML Changes 时 - 如果元素存在,您可以修改它,但如果它不存在,则不要创建它。
    请参考XPath Expressions文档做吧,我想,Example 3,有给你的。

    【讨论】:

    • 我需要保存用户在配置中更改的配置数据,所以如果我在配置文件中进行任何更改并升级软件,它会复制特定节点。
    • 然后你需要通过这个键为标签和搜索元素创建特定的键。例如,在 xml 标签 中再添加一个键:&lt;startup id="1" useLegacyV2RuntimeActivationPolicy="true"&gt;... 然后您可以通过键 id 找到该元素并修改您需要的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    • 2011-08-28
    • 2011-08-20
    • 2010-12-25
    相关资源
    最近更新 更多