К сожалению, для вас (и для всех остальных в этой ситуации) вам придется создать загрузочное приложение, которое проверяет предварительные условия и при необходимости запускает их установщики, а затем запускает ваш установщик.
Вдвойне прискорбно, если ваши предварительные требования зависят только от определенных функций, а не от всего пакета, поскольку это означает, что вам также потребуется реализовать пользовательский интерфейс в приложении начальной загрузки. (Это было с нами, но, к счастью, мы все равно начинали с нуля, поэтому нам не пришлось воссоздавать пользовательский интерфейс, который мы уже реализовали в MSI. На самом деле мы пробовали гибридный подход, когда первые несколько экранов пользовательского интерфейса были в приложении начальной загрузки, а остальные были в MSI, но было слишком много разочарований, поэтому мы отказались от этой идеи в короткие сроки.) С пользовательским интерфейсом в приложении начальной загрузки пользователь будет выбирать функции что они хотят установить, а затем приложение начальной загрузки, при необходимости, представит страницу, которая говорит, что предварительные условия устанавливаются, и установите их в этот момент, прежде чем перейти к следующей странице. При запуске вашего установщика приложение начальной загрузки передает всю информацию, полученную из интерфейса через аргументы командной строки. Возможно, вы даже захотите поместить условия запуска в MSI, чтобы предотвратить его прямой запуск, за исключением случаев удаления или восстановления.