我正在使用配置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 =&#34; false&#34;用户升级软件后,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。
先谢谢
答案 0 :(得分:0)
使用InstallShield XML Changes时 - 您可以修改元素(如果存在),但如果元素不存在则不创建。
请参考XPath Expressions文档来做,我想,例3,有适合你。