我有一个使用WiX制作的驱动程序包安装程序。 在进行任何形式的升级时,我需要卸载旧的驱动程序REBOOT,然后安装新的驱动程序。
我究竟如何让WiX做到这一点? 我尝试过:
<Custom Action='UNINSTALL_DRIVER_BEFORE_FINALIZE' After='InstallInitialize'>(( NOT Installed AND OLDPRODUCTS ) AND ( NOT AFTERREBOOT = "1")) OR ((NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL"))</Custom>
<ForceReboot After="RemoveExistingProducts">( NOT Installed AND OLDPRODUCTS ) AND ( NOT AFTERREBOOT = "1")</ForceReboot>
或
<ScheduleReboot After="InstallFinalize">Installed OR PREVIOUSVERSIONSINSTALLED OR UPGRADINGPRODUCTCODE OR (REMOVE~="ALL")</ScheduleReboot>
问题是ForceReboot无法启动,因为未调用RemoveExistingProducts(“此产品处于维护或卸载模式”)。 这是我将产品的主要版本从1.0.0更改为2.0.0的时候。 似乎没有发生旧版本的卸载(我没有UNINSTALL_DRIVER_BEFORE_FINALIZE的日志条目)
查询2:如何在卸载旧版本后且重启之前运行UNINSTALL_DRIVER_BEFORE_FINALIZE?