cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
unreal
Level 3

Chained MSI Packages

I have three software packages (A, B, C) that I created three separate projects for. I also created an additional project that acts as a suite installer for ABC. I explored many different paths for a multiple-package install but the most logical option appeared to be in using chained MSI's. I could create a basic MSI project that will act as a suite for the chained packages and tie the chained packages to their respective features.

My problem is that to include a chained MSI it can't have pre-req's. From what I have read, it recommends to move the pre-req's to the parent/suite installer for ABC. Although now I have to double my projects to six in order to have a pre-req and non-pre-req MSI generated because I need the pre-req's if A, B or C is installed by itself outside the suite installer. With all the projects (7), it is going to be a big pain to update all three projects for just a single change in A, B or C.

Does anyone have a nice way of dealing with this? Is there a way to have an InstallShield project create multiple custom builds so I can cut the pre-req and non-pre-req MSI in one action?
Labels (1)
0 Kudos
(2) Replies
chgruber
Level 4

I don't think there is anything like what you are looking for built-in to InstallShield.

Here is how we are handling a similar situation.

Each of our chained MSIs check for pre-reqs. If the given pre-req is not found, it aborts.
The suite installer is responsible for checking for all of the chained MSIs pre-reqs and installing them if they are missing (so they are present by the time the chained MSI gets called). Specifically, we install the chained MSI based on feature selection - so our pre-req checking/installing is also at this level.

If the user wants to install just a chained MSI without the suite installer, then they are responsible for making sure the pre-reqs are already installed before installation.
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

Right, that sounds a lot like what I would recommend. But one little note: you can definitely avoid the 2x project explosion (use Release Flags on your prerequisites, and add another release configuration) and you may be able to avoid the 2x build explosion. If you build uncompressed packages and are only using setup prerequisites (no feature prerequisites), then you can harvest the files other than setup.exe and ISSetupPrerequisites\ in order to have an MSI without the prerequisites. If you build compressed, you can grab these files from the TEMP extracted folder after you launch setup.exe.
0 Kudos