我正在尝试配置WiX,以便在更新期间不从安装目录中删除某些配置文件。
我搜索过并搜索过,但我被卡住了......
这就是我所拥有的。
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" ... >
<Product Id="PRODUCT_GUID" ...
UpgradeCode="UPGRADE_GUID">
...
<Upgrade Id="$(var.UpgradeCode)">
<UpgradeVersion OnlyDetect="no" Property="REMOVEOLDVERSION" Maximum="$(var.ProductVersion)" IncludeMaximum="no" />
<UpgradeVersion OnlyDetect="yes" Property="NEWERFOUND" Minimum="$(var.ProductVersion)" IncludeMinimum="no" />
</Upgrade>
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallFinalize" />
</InstallExecuteSequence>
...
文件如下:
<Component Id="ConfigurationFiles" Guid="ConfigurationFiles_GUID" NeverOverwrite="yes">
<File Id="SomeConf" Source=... />
</Component>
我做错了什么?
答案 0 :(得分:4)
如果问题确实是配置文件的删除,那么我认为您打算指定Permanent="yes"
而不是NeverOverwrite="yes"
。
但是,如果安装程序的新版本没有安装配置文件(这就是为什么它们在升级后消失的原因,我猜)那么它们应该没有必要吗?在这种情况下,我不确定为什么要保留配置文件。有效地将它们标记为永久性使其无法卸载它们。
如果您实际上担心用户对覆盖对这些配置文件所做的更改,那么我认为Windows Installer已经正确处理了这个问题。 File Versioning Rules已经有一个基于文件修改时间戳的“用户数据”概念,并且不会覆盖这些文件。