У меня есть установщик пакета драйверов, сделанный с помощью WiX. Во время обновления (любого вида) мне нужно удалить старый драйвер, ПЕРЕЗАГРУЗИТЬ, а затем установить новый.
Как именно заставить 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 после удаления старой версии и непосредственно перед перезагрузкой?