Программно извлечь содержимое InstallShield setup.exe - PullRequest
22 голосов
/ 30 декабря 2011

Я пытаюсь извлечь содержимое файла InstallShield setup.exe.(Мой план состоит в том, чтобы использовать его в инструменте бэк-офиса, поэтому это должно быть сделано программно без какого-либо взаимодействия с пользователем.)

Возможно ли это?
(первоначальные исследования указывают на то, что это не удастся.)

Если возможно иметь общее решение, для всех последних версий InstallShield это будет лучше.
В противном случае, если решение работает только для некоторых версий InstallShield, это будет шагом на пути,(Вероятно, можно было бы определить, какая версия InstallShield setup.exe, взглянув на ресурсы версии exe-файла.

I обнаружил, что некоторые версии InstallShield поддерживают /b или/extract_all. Однако нет хорошего способа узнать, просто запустить exe и надеяться, что он будет извлекаться и завершаться упорядоченно, а не отображать диалоги GUI, не кажется хорошим решением, поэтому я ищу более стабильный способ.
Идеи приветствуются.

Ответы [ 5 ]

35 голосов
/ 01 января 2012

Нет поддерживаемого способа сделать это, но вам не придется проверять файлы, относящиеся к каждому установщику, чтобы выяснить, как на самом деле установить их после распаковки?Предполагая, что вы можете потратить время на выяснение того, какая командная строка применима, вот несколько возможных параметров, которые обычно позволяют извлечь установку.

На основе MSI (может не привести к пригодному для использования образу для установки InstallScript MSI):

  • 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 (может быть не совсем понятно, как установить получившиеся файлы):

  • setup.exe /silent /stage_only ISRootStagePath="choose-a-location"
11 голосов
/ 30 декабря 2011

http://www.compdigitec.com/labs/files/isxunpack.exe

Использование: isxunpack.exe yourinstallshield.exe

Он будет распакован в ту же папку.

5 голосов
/ 21 октября 2016

В Linux есть unshield, что хорошо сработало для меня (даже если графический интерфейс пользователя включает в себя настраиваемые средства сдерживания, такие как подсказки лицензионного ключа). Он включен в репозитории всех основных дистрибутивов (arch, suse, на основе debian и fedora) и его источник доступен по адресу https://github.com/twogood/unshield

4 голосов
/ 25 мая 2013

Начните с:

setup.exe /?

И вы должны увидеть всплывающее диалоговое окно с отображением некоторых параметров.

1 голос
/ 24 ноября 2013

Бесплатная программа с открытым исходным кодом под названием 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.
...