Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Programmatically extract contents of InstallShield setup.exe

I am trying to extract the file-contents of an InstallShield setup.exe-file. (My plan is to use it in a back-office tool, so this must be done programmatically without any user interactions.)

Is this possible?
(Initial research seems to indicate it will fail.)

If it is possible to have a generic solution, for all recent versions of InstallShield that would be best.
Otherwise, if a solution only works for some versions of InstallShield it would be a step on the way. (It would probably be possible to deduce which InstallShield version a setup.exe is by looking at version resources of the exe-file.

I found that some InstallShield versions support /b or /extract_all. However there is no good way of knowing, just launching the exe and hoping it will extract and terminate orderly rather then displaying GUI dialogs doesn't seem like a good solution. So I am therefore looking for a more stable way.
Ideas welcome.

like image 809
leiflundgren Avatar asked Dec 30 '11 15:12

leiflundgren


People also ask

How do I unpack an MSI file?

Extracting msi files All that you need to do for that is right-click on the msi file, and select Extract Here to unpack the msi file on your system. Â You can alternatively open the archive instead using the same application.

How do I unpack an EXE file?

When you open the EXE file in 7-Zip, you'll be shown a list of files and folders that the EXE file contains. You can double-click folders to see the files stored inside. You can select multiple files by holding Ctrl and clicking each one. Click the "Extract" button after selecting the files.


2 Answers

There's no supported way to do this, but won't you have to examine the files related to each installer to figure out how to actually install them after extracting them? Assuming you can spend the time to figure out which command-line applies, here are some candidate parameters that normally allow you to extract an installation.

MSI Based (may not result in a usable image for an InstallScript MSI installation):

  • setup.exe /a /s /v"/qn TARGETDIR=\"choose-a-location\""

    or, to also extract prerequisites (for versions where it works),

  • setup.exe /a"choose-another-location" /s /v"/qn TARGETDIR=\"choose-a-location\""

InstallScript based:

  • setup.exe /s /extract_all

Suite based (may not be obvious how to install the resulting files):

  • setup.exe /silent /stage_only ISRootStagePath="choose-a-location"
like image 111
Michael Urman Avatar answered Sep 29 '22 08:09

Michael Urman


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

Usage: isxunpack.exe yourinstallshield.exe

It will extract in the same folder.

like image 42
Motes Avatar answered Sep 29 '22 09:09

Motes