InstallShield Запустите установку и установите необходимые компоненты, не спрашивая

У меня есть приложение WinForm, выполненное в Visual Studio 2012, Framework 4.5. Я сделал проект установки с помощью InstallShield. Мне нужно установить это приложение на ПК, на котором может не быть установлен Framework 4.5, поэтому я добавляю Framework 4.5 в качестве предварительного условия. Все идет нормально. Я хочу установить PreRequisite автоматически, не спрашивая моих клиентов, когда они запускают установку. Это возможно? Спасибо


person Diego    schedule 12.12.2013    source источник


Ответы (2)


Измените свой PRQ, чтобы всегда устанавливать .net45 без ввода. Вот .net40 PRQ, который мы используем локально.

введите здесь описание изображения

/passive показывает индикатор выполнения, но вы можете так же легко сделать /q (вообще без пользовательского интерфейса). Единственной проблемой будет очень большая задержка запуска вашей установки, которую пользователь, вероятно, интерпретирует как «что-то не так», поэтому я бы рекомендовал оставить /passive.

person NGaida    schedule 13.12.2013
comment
Добавьте к этому: пользователю придется запустить setup.exe, чтобы получить такое поведение; просто если они запустят сам msi, это не вызовет PRQ. Хотя, если вы создадите установку с одним типом файла, это не будет проблемой. - person NGaida; 14.12.2013

InstallShield не поддерживает эту функцию. Ближе всего сделать предварительное условие обязательным. Другая возможность состоит в том, чтобы связать PRQ с функцией, чтобы сделать ее «предварительной потребностью функции», а не «предварительной потребностью настройки». Это приведет к тому, что Setup.exe перейдет прямо в ваш MSI, а затем отложит установку до окончания опроса пользователя.

person Christopher Painter    schedule 13.12.2013
comment
Не могли бы вы сделать PRQ для .net45 скрытым и передать /q /norestart в PRQ? Тогда он будет установлен до запуска основного установщика. - person NGaida; 14.12.2013
comment
Я мог бы просто запустить setup.exe /s, но это потребовало бы, чтобы клиент набрал его. Я предположил, что они просто захотят дважды щелкнуть EXE. - person Christopher Painter; 14.12.2013
comment
Думаю, я прочитал его вопрос так: я хочу, чтобы пользователь автоматически получал .net 45 при запуске моей установки. Поэтому, если он отредактирует PRQ, который он использует для установки .net45, чтобы всегда передавать /q /norestart (и, очевидно, чтобы он правильно определял, есть ли уже .net45), тогда любой пользователь, устанавливающий его продукт (запустив его естественным образом), они будут получить .net45 до запуска его установки; и, таким образом, не спрашивая их, хотят ли они этого. - person NGaida; 14.12.2013