Программно извлеките содержимое программы установки 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

Он будет извлекаться в той же папке.


начать с:

setup.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.