Лично я иду по этому другому пути. Я ожидаю, что пользователь может запустить MSI, а не SETUP.EXE, поэтому я намеренно продублирую все свои предварительные проверки загрузчика в MSI, используя AppSearch и LaunchConditions. Таким образом, если они либо пропустят загрузчик, либо он каким-то образом потерпит неудачу, мой MSI все равно сможет решить проблему.
Я также следую практике добавления «или Установлено» в мои условия, чтобы отсутствующий пререк не мешал удалению.