Как мне заставить WiX install перезагружаться после удаления существующей версии, но перед установкой новой? - PullRequest
0 голосов
/ 25 мая 2020

У меня есть установщик пакета драйверов, сделанный с помощью 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 после удаления старой версии и непосредственно перед перезагрузкой?

...