Установка VC_REDIST.X86 тихо с помощью InstallShield Lite - PullRequest
0 голосов
/ 16 февраля 2019

Я вытаскивал то, что осталось от моих волос, пытаясь установить программное обеспечение, которое требует распространяемого C ++ (2017 x86), используя InstallShield lite.Для начала я определяю предварительное условие для включения распространяемого C ++.Когда пользователь пытается установить, пользовательский интерфейс всегда появляется.Теперь это не является реальной проблемой, однако, если распространяемый файл уже установлен, или существует более новая версия, то он потерпит неудачу с сообщением об ошибке, и он спросит пользователя, хочет ли он продолжить или прервать установку.Если он выберет продолжить, программное обеспечение будет установлено нормально.Это не очень удобно для пользователя.Это происходит несмотря на то, что используются правильные ключи командной строки, т.е. / q / norestart.Если вы делаете это в командной строке вручную, она работает как надо.Другими словами, он устанавливает его или дает сбой, потому что он уже установлен, но ничего не говорит пользователю.Это способ, которым он должен работать.Теперь я попытался сделать это как пользовательское действие в конце сценария installshield, но затем установка зависает на некоторых компьютерах и других ошибках.Теперь единственная подсказка, которую я могу дать, - это то, что если я создаю установку MSI, она никогда не запрашивает.Однако при установке setup.exe он действует как указано выше.Я успешно установил MSI, только если я установил 64-битное приложение.Никогда с 32-битным приложением.Кто-нибудь может подсказать мне, что я делаю неправильно?Спасибо

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Спасибо за исчерпывающий ответ.Я уверен, что это поможет многим людям.Я обнаружил, что запуск vc_redist.x86 из командной строки в тихом режиме действительно всегда будет работать так, как должен.Другими словами, если он не установлен, он будет установлен.Если он уже установлен или установлен более поздний выпуск, он просто вернется без жалоб.Это не тот случай, когда используется InstallShield Lite 2018 (то же самое для всех предыдущих выпусков).
Однако, как я выяснил, существует простое решение, чтобы заставить его работать.Все, что нужно сделать, это включить запись Hidden = "1" в часть поведения файла PRQ.Так что теперь будет запись, которая выглядит следующим образом:

 <behavior Hidden="1" Failure="4" Reboot="2"/>

Это решает проблему.Он больше не запускается отдельно от установщика installshield с собственным графическим интерфейсом, а вместо этого сообщения теперь отображаются в меню в installshield и работают точно так же, как если бы вы запускали его в командной строке.Больше ошибок нет.

0 голосов
/ 17 февраля 2019

VCRedist : Эта среда выполнения C / C ++ (в различных версиях и разновидностях) действительно является проблемой.Некоторое время назад я решил написать кое-что, чтобы попытаться суммировать несколько вещей: Wix для каждого установщика для обнаружения распространяемого пакета Visual C ++ 2015 (пожалуйста, просмотрите хотя бы - не отлично, лучшечем ничего, я надеюсь - в основном занимается обнаружением наличия среды выполнения).


Объединение модулей : Installshield Lite поддержка модулей слияния?Если это так, вы можете установить VCRedist , используя модули слияния вместо файла VCRedist_x64.exe.Этого недостаточно для приложений UWP (универсальный CRT), как описано в следующих ссылках:

Читайте ссылки непосредственно выше - они быстро читаются.

Пакетный файл : Другой вариант - сохранить файл VCRedist_x64.exe отдельно от основной настройки и сжать MSI иVCRedist_x64.exe в архиве ZIP и поместите туда пакетный файл Install.cmd, который сначала установит VCRedist, а затем ваш файл MSI?Не слишком аккуратно - надо признать.Я думаю, что вы можете создать самораспаковывающийся архив, который будет автоматически вызывать его, но я не делал этого целую вечность.

Просто макетный пакетный файл по ссылке ниже (непроверено):

REM 1. Install VCRuntime
vc_redist.x64.exe /install /quiet /log "%temp%\Install_vc_redist_2017_x64.log"

REM 2. Install MSI
msiexec.exe /i MySetup.msi /L*v C:\MySetup.log /QN

Не уверен насчет исправлений безопасности и тому подобного.После этого запустить Центр обновления Windows?

Исправления безопасности и ссылка на скачивание : было много исправлений безопасности для этой среды выполнения, и она обычно устанавливается на большинстве компьютеров,что я бы откровенно просто дал ссылку на загрузку последней версии и попросил бы людей установить ее самостоятельно в качестве предварительного условия, а не связывать устаревшую версию в моей установке, но этого на самом деле недостаточно, если ваш пакет предназначен только для корпоративного использования (в этом случае они предпочитают устанавливать свои собственные среды выполнения с полным контролем).


Некоторые ссылки (найти легко):

...