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