2
votes

I have three products which have their installers in .exe files. Let us say the installers for the three three products are

  • Product_A.exe
  • Product_B.exe
  • Product_C.exe

I want to create a msi file using wix toolset which will install these three exe installers.

What is the best way to do this? I want to also fail my MSI in case any of the three exe fails to install. I am new to these so please help.

Any example would be highly appreciated

I also plan to uninstall these products once I uninstall my msi.

Thanks in advance for any help

1
1) Determine if your EXE files are wrappers for MSI files. If so, extract the MSI files and run them instead (generally better for error handling and reliability). 2) Install the different products in sequence with a launcher such as WiX's Burn feature. See this "Hello Burn example". 3) Have a look at a more advanced Burn sample with features for handling various exit codes: Burn advanced "sample".Stein Åsmul
How to extract MSI from setup.exe installers (obviously the setup.exe could be a non-MSI installer). MSI installers have a number of quirks, but also many deployment benefits. And online Burn documentation (ran out of characters above). There is also the WiX.chm on local disk if you have WiX installed.Stein Åsmul
Commercial tools Installshield and Advanced Installer (they cost money) have good features for chaining setups (perhaps not in every edition, check which edition you need). Information here (screen shot here).Stein Åsmul

1 Answers

2
votes

Tools: There are a number of tools available for MSI creation. Some commercial and WiX - the open source solution. Here is a quick summary of tools. The commercial tools are excellent but expensive, WiX (free, open source) is also excellent but has a learning curve (XML text sources). Remember that a setup consultant can help you make such packages pretty quickly in most cases, but you might need the knowledge in-house. Long review of tools.

Cohesion & Coupling: You might need to create 3 different MSIs to install these products, or you could put them all in the same MSI. Here are some considerations to decide what to do. Remember to not be dogmatic but practical - what will work best for your particular case? You can allow only some of the tools to be installed by exposing features in the MSI you make - allowing only some features to be installed from a single MSI. Feature sample screenshot.

Setup.exe: There is also functionality to allow a setup.exe bootstrapper / installer launcher to install multiple MSI files wrapped inside it in sequence. WiX has the Burn component, and commercial tools have various options for the same (InstallShield Suite Projects, prerequisites, etc... - info here).

Details: As to the actual setups. You need to determine what they actually install (bullet point 3) - prerequisites and all (COM, COM+, GAC, Java, VC++ runtime, etc...). That might or might not be available to you via 1) documentation of in-house expertise (developers). 2) You can extract files from the setup to look at (check if they are MSI files already coming out of the setup.exe!), 3) install the setups and inspect the application operation with dependency / profiling tools. 4) The best is to find the old setup scripts used to compile the old setup exes. 5) You can also "capture" old setup EXE files to auto-convert to MSI. This needs serious cleanup at times from experts and it requires expensive tools - generally. See more info here. There are probably further approaches too. Developers will dump files in place, start registering them and install runtimes and keep going until things (appear) to work in order to figure out what to do in the setup (have them jot down some good notes).


Packaging Team: Note that most big companies have whole teams to take care of such setup conversion to MSI - generally referred to as "application packaging". If you are in a big company, maybe try to locate them and see if they can help (or just get them to capture your setup for you - with the expensive tool - for you to clean up - it is no picnic to clean).


Links: