Я работаю над проектом установщика, который состоит из файла MSI и загрузочного приложения, которое управляет предварительными условиями; и поскольку потребность в некоторых предварительных требованиях зависит от того, какие функции пользователь хочет установить, приложение начальной загрузки также предоставляет пользовательский интерфейс. Я хочу, чтобы заставить панель управления «Установка и удаление программ» (или «Программы и компоненты») (ARP) запускать загрузочное приложение вместо MSI, когда пользователь хочет запустить установку изменения. Я попытался изменить значение ModifyPath в разделе реестра Uninstall Registry установщика на путь к загрузочному приложению, но безрезультатно. Нажатие кнопки «Изменить» в ARP по-прежнему дает мне MSI.Как мне получить ARP для запуска моего загрузочного приложения установщика для установки изменений?
Есть ли простой способ сделать то, что я хочу? В противном случае, есть ли способ, чтобы MSI обнаружила, что он был запущен из ARP с помощью кнопки «Изменить», чтобы я мог заставить его показать сообщение об ошибке, которое говорит пользователю вместо этого запустить приложение для загрузки? (Т. Е. Использует ли ARP те же аргументы командной строки, которые пользователь будет использовать для запуска MSI, и указать модификацию установки без необходимости видеть страницу обслуживания пользовательского интерфейса? Если нет, что мне следует искать?)
Редактировать Мой установщик устанавливает не только одно приложение, но и набор приложений, каждый из которых пользователю разрешено не устанавливать. (Мы устанавливаем эти приложения как набор, потому что большинство из них зависит от того, какой из них, в частности, устанавливается. Поэтому пользователю будет проще иметь только один инсталлятор, а не отдельные установщики, которые этот новый установщик заменит.)
Приложениям в пакете не все требуется один и тот же набор предварительных условий, поэтому MSI не просто проверяет предварительные условия, пока не узнает, какие приложения в пакет, который пользователь хочет установить. Кроме того, мы хотим, чтобы это стало проще для пользователя, установив инсталляторы для всех предварительных условий для приложений, которые пользователь хочет установить автоматически. (Это основная причина, по которой пользовательский интерфейс установщика был реализован в загрузочном приложении.)
Возможно ли, чтобы MSI запустила приложение начальной загрузки, а затем тихо вышла сразу, когда приложение загрузки загрузилось, в конечном итоге перезапустив MSI? (Когда приложение bootstrap запускает MSI, один из аргументов командной строки, который он передает в MSI, является свойством, которое сообщает ему, что приложение bootstrap запустило его. В настоящее время оно используется, среди прочего, для того, чтобы позволить MSI показывать ошибку сообщение о том, что пользователь запускает загрузочное приложение, если в командной строке не указана установка для удаления или восстановления.)