Программно извлеките содержимое программы установки InstallShield.исполняемый
Я пытаюсь извлечь содержимое файла установки InstallShield.EXE-файл. (Я планирую использовать его в инструменте back-office, поэтому это должно быть сделано программно без каких-либо пользовательских взаимодействий.)
это возможно?
(Первоначальные исследования, похоже, показывают, что он потерпит неудачу.)
Если возможно иметь общее решение, для всех последних версий InstallShield это было бы лучше всего.
В противном случае, если решение работает только для некоторых версий InstallShield это будет шаг на пути. (Вероятно, можно было бы вывести, какая версия InstallShield a setup.exe
по версии ресурсов exe-файла.
Я установлено, что некоторые версии InstallShield поддерживают /b
или /extract_all
. Однако нет хорошего способа узнать, просто запустив exe и надеясь, что он будет извлекать и завершать упорядоченный, а не отображать диалоги GUI, не кажется хорошим решением. Поэтому я ищу более стабильный способ.
Идеи приветствуются.
5 ответов
нет поддерживаемого способа сделать это, но не нужно ли вам изучить файлы, связанные с каждым установщиком, чтобы выяснить, как их установить после их извлечения? Предполагая, что вы можете потратить время, чтобы выяснить, какая командная строка применяется, вот некоторые параметры-кандидаты, которые обычно позволяют извлечь установку.
на основе MSI (может не привести к использованию образа для MSI InstallScript установка):
-
setup.exe /a /s /v"/qn TARGETDIR=\"choose-a-location\""
или, чтобы также извлечь необходимые условия (для версий, где он работает),
setup.exe /a"choose-another-location" /s /v"/qn TARGETDIR=\"choose-a-location\""
InstallScript на основании:
setup.exe /s /extract_all
Suite based (может быть не очевидно, как установить результирующие файлы):
setup.exe /silent /stage_only ISRootStagePath="choose-a-location"
http://www.compdigitec.com/labs/files/isxunpack.exe
использование: isxunpack.exe yourinstallshield.exe
Он будет извлекаться в той же папке.
на Linux есть unshield
, который хорошо работал для меня (даже если GUI включает пользовательские сдерживающие факторы, такие как подсказки лицензионного ключа). Он включен в репозитории всех основных дистрибутивов (arch, suse, debian - и fedora-based), а его источник доступен по адресуhttps://github.com/twogood/unshield
бесплатная программа с открытым исходным кодом под названием cabextract выступает будет список и извлечь содержимое не только .cab-файлы, но и архивы Macrovision:
% cabextract /tmp/QLWREL.EXE
Extracting cabinet: /tmp/QLWREL.EXE
extracting ikernel.dll
extracting IsProBENT.tlb
....
extracting IScript.dll
extracting iKernel.rgs
All done, no errors.