4

我有一个注册 Windows Explorer shell 扩展的应用程序。

该应用程序的安装程序是使用 WIX 开发的。

我在安装新产品之前删除了旧产品:

RemoveExistingProducts Before="InstallInitialize"

问题是这在 Windows XP 上失败了。这并不奇怪,因为 Windows Explorer 正在使用该扩展。当然,Windows 资源管理器没有默认窗口的情况经常发生,因此“使用中的文件”对话框也不会出现。

所以我的大问题是:使用 WiX 更新 Windows Explorer shell 扩展的最佳方法是什么?

有没有比ForceReboot更好的解决方案?

一个想法:我前段时间写了一个 NSIS 安装程序,通过重命名旧扩展解决了一个类似的问题。但这对 WiX 来说是不可能的,不是吗?

注意:我要求的是 Windows XP,因为在 Vista 或更高版本的重启管理器上做得很好。

4

1 回答 1

0

RemoveExistingProducts紧接在之前的计划InstallFinalize,以及InstallExecute紧接在之前的动作RemoveExistingProducts。这不仅更有效,它还能够替换文件(如果不是硬锁定)并安排在重新启动时删除旧文件,或者安排新文件在重新启动后复制旧文件(都使用 PendingFileRename) .

于 2014-01-18T03:21:45.090 回答