我使用WIX对我的安装程序进行编码。正在安装的应用程序有一个数据库文件,只有在卸载时才需要删除,在修复,重新安装或升级时不会被触及。
我将其编码为:
<Component Id='CompIDRemDataFile' Guid='{---gui--}'>
<RemoveFile Id="idRemDataFile" Name="program_database.db" On="uninstall" Property="MyDataFolderPath" />
<RegistryValue Id="RegRemDataFile" Root="HKCU" Key="Software\My Company\App name"
Name="11352" Value="1" Type="integer" KeyPath="yes" />
但我刚刚了解到,如果我从旧版本升级到更高版本,此文件也会被删除。我应该改变什么以防止这种情况?
答案 0 :(得分:1)
文件覆盖规则包括一个表示永远不会覆盖更新数据文件的规则:
这意味着在InstallExecute之后排序的补丁,修复和主要升级不会替换可能已更新的数据库。 Windows Installer中没有“重新安装”,因为相同的MSI无法安装两次 - 产品将进入维护模式。
WiX主要升级在这里: