WiX/MSI : How to update an registered shell extension on Windows XP
insus
阅读:177
2025-06-02 22:19:02
评论:0
我有一个注册 Windows 资源管理器 shell 扩展的应用程序。
该应用程序的安装程序是使用 WIX 开发的。
我在安装新产品之前删除旧产品:
RemoveExistingProducts Before="InstallInitialize"
问题是这在 Windows XP 上失败了。不足为奇,因为 Windows 资源管理器正在使用该扩展。当然,Windows 资源管理器没有默认窗口的情况经常发生,因此使用中的文件对话框也不会显示。
所以我的大问题是:使用 WiX 更新 Windows 资源管理器 shell 扩展的最佳方法是什么?
有没有比 ForceReboot 更好的解决方案?
一个想法:我不久前写了一个 NSIS 安装程序,通过重命名旧扩展解决了一个类似的问题。但这对 WiX 来说是不可能的,是吗?
注意:我要求使用 Windows XP,因为在 Vista 或更高版本上,重启管理器做得很好。
请您参考如下方法:
附表 RemoveExistingProducts紧接在 InstallFinalize 之前, 和 InstallExecute紧接之前的行动 RemoveExistingProducts .这不仅更有效,它还能够替换文件(如果没有硬锁定)并安排在重新启动时删除旧文件,或安排新文件在重新启动后复制旧文件(均使用 PendingFileRename) .
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



