WIX:在主要升级期间保存用户数据文件

问题描述:

我的应用程序作为Windows服务运行。在正常执行过程中,一些数据文件在我用WIX安装创建的“数据”目录中生成。在升级过程中,我想将这些文件移动/迁移到升级后的安装中的相同数据目录。但是,我遇到了问题。我使用的是“MajorUpgrade”标签如下:WIX:在主要升级期间保存用户数据文件

我在后面的过程(afterInstallFinalize)试图调度,但运行与升级过程中具有的文件锁服务问题。我已经梳理了堆栈溢出和谷歌,似乎没有人描述我的情况。其他人有默认的* .ini文件,用户可以编辑。但是,就我而言,迁移文件应始终安全,因为没有默认值。它们只是需要迁移的数据文件。

我以为我可以通过自定义操作来做到这一点,但不知道该怎么做。

任何建议将非常感激。

编辑:只要用户在升级过程中不更改路径,显然使用“afterInstallFinalize”对我来说工作正常,即数据文件已迁移。如果在升级过程中更改路径,我会收到有关文件被锁定的警告,并要求使用这些文件停止应用程序。但是,在这种情况下,它最终不会迁移文件。

最终,我解决了我自己的问题,只需重写默认对话框行为,并更改流程,以便在升级时跳过“InstallDirDlg”。