我有一个带有多个文件的应用程序,这些文件包含配置参数和其他随用户使用应用程序而更改的数据.这些文件可能会随着我的软件的更新版本而改变,但用户也可以修改它们(或者它们可能会被应用程序本身更改).基本上,我正在寻找一种解决方案来防止用户对这些文件的更改被覆盖,但也是一种在用户升级我的软件时安装可能更新的文件的方法.
使用RPM on*NIX,您可以使用%config函数将文件定义为配置文件,然后RPM将重命名现有文件(如果存在)并在升级时安装新文件(可能不理想,但我可以活有这样的WiX).
我想将配置文件安装到子目录甚至是不同的名称(例如default.cfg),然后使用
WiX中的元素将文件复制到正确的位置.这样,默认文件将在安装时删除并在升级时被覆盖,但实际用户文件将保持不变.不幸的是
,Windows Installer仍然希望管理(和删除)目标文件.
我也考虑过在WixUtilExtension中使用QtExec动作基本上做"复制default.cfg reallocation.cfg",但是这不太合适,而且它有点像黑客.
处理这个问题的正确方法是什么?