Для этого вам нужны две (более поздние) отдельные установки. Основное различие между ними состоит в том, что у вас есть таблица Upgrade (которая будет производить серьезную модернизацию уже установленного продукта, заменив его в Program & Features), а другая не будет иметь таблицу Upgrade, а это означает, что это просто другая продукт устанавливается в бок о бок сценарий. В обоих случаях у них есть ProductCode, который отличается от всех установленных Продуктов.
Вам понадобится автозагрузка, потому что я не думаю, что вы можете сделать это любым другим способом. Загрузочный загрузчик спрашивает у пользователя, что делать и запускает выбор установки. Вам не нужны два файла MSI - у вас может быть один MSI с преобразованием (файл .mst), который удаляет (или добавляет) записи в таблицу Upgrade. Вы можете использовать Orca в MSI с элементами таблицы Upgrade, удалите записи, создающие преобразование. Для обновления просто запустите файл MSI нормально; для параллельного запуска MSI с командной строкой, которая включает TRANSFORMS = [файл mst, который удаляет таблицу обновления].
Конечно, вы могли бы сделать это с двумя отдельными файлами MSI, но вы, похоже, уже в ваших ушах с несколькими версиями файлов MSI и можете не добавлять больше.
Возможно, существует более простая альтернатива: это действие RemoveExistingProducts, которое выполняет удаление старого продукта. Если есть способ обнаружить (например, через значение свойства), который пользователь хочет установить отдельно, вы можете сделать действия RemoveExistingProducts условными для свойства.