3
votes

I have a MSI created using InstallShield. I do not have the InstallShield project. I want unpack this MSI into components & then recreate the install using a different installer (say Wix). Is something like this possible? If needed, I can get the InstallShield scripts which were used (i.e. the scripts which check if product is allready installed - what version is installed etc.)

Also if this is possible what installer tool should I try if my biggest needs is achieving very high compression - i.e. MSI should be as small as possible. I am on Windows, my application is java application (not an exe - just jar files). I am not interested in creating Exes.

As an aside, does anyone know what compression does Oracle use for it's JRE installers. I took the 6.12 JRE installer - it's around 15 MB in size - & installed java & then zipped the jre directory using different zip tools - most of them ended up with a 30MB zip file.

3

3 Answers

1
votes

Many MSI authoring tools (InstallShield, Advanced Installer, etc.) have the ability to "import" an existing MSI into the tool you are using for further modification (e.g. using Advanced Installer import an MSI authored using InstallShield). I haven't used Wix so I don't know if this capability exists in the tool or not.

You can also use Orca.exe to view and edit the MSI as well.

It's been my experience that importing an MSI into another tool can be hit or miss. Sometimes everything comes over perfectly, but if you rely upon scripts or other custom actions sometimes those (for whatever reason) don't come over correctly all of the time.

It's been a few years since I've done this, but I recall spending a day or two "tweaking" the new project before the new MSI would work as I wanted it to.

As for what tool gives you the most compression, have a look at this Compressing an uncompressed MSI file which may offer some insight for you.

3
votes

Wix does have a tool for generating Wix source from an MSI, its called Dark. The documentation for the tool is pretty sparse, and as Tim Lentine mentiioned you'll probably need to do some tweaking after running it, but it should give you a good start.

0
votes

Do you just need to update a project you lost the source to? You can open an MSI using InstallShield in Wizard Mode and then select the Convert MSI to InstallShield project.

This will give you a project that you can update and rebuild. You'll probably want to do a lot of cleanup though to get back to a true project format though.

BTW, using a system like Team Foundation Server helps prevent this situation.