cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Tim_Mayert
Level 9

Chaining installs to be seamless...

Okay I do not like chaining installs as it does not work well with roll back, but is there an easier way to chain installs to make them more seamless in look and feel????

I have an older product that installed 2 apps as one install, one app was a merge module. But now the one app that was a merge module has now been taken out and put into it's own installer.

Now we are working on the next version of both apps and I have to be able to handle installing these two apps as one install or as seamless as possible.

Does anyone have any suggestions on the best method to handle this?

thanks,
Labels (1)
0 Kudos
(4) Replies
KathyMorey
Level 10

The only way I've ever managed to do this successfully is by writing an InstallScript setup that runs the other setups behind the scenes. The front-end setup displays options for the "background" setups, gathers all user input, then initiates them silently with user input set as properties on the command line.
0 Kudos
Tim_Mayert
Level 9

Thanks Kathy,

Yes I was thinking something like this, but as a wrapper executable that was basically an install wizard that would gather up all the info and then launch all the installs silently, just passing in all the properties that were selected.

Since you can not run more than 1 msi install at a time do you have these installs run at the end of your wrapper install or are they silently launched during your UI phase of the wrapper install?

thanks for your input and if there are any other suggestions I would like to hear them.
0 Kudos
DLee65
Level 13

Tim,

I would create some pseudo features in the InstallScript setup, one for each install you want to run silently. I would then call LaunchAppAndWait as an InstallScript feature event and update the progress bar appropriately for each one.
0 Kudos
KathyMorey
Level 10

I've done this two ways: I've set up the UI in the wrapper script project, run the msi's from OnFirstUIBefore, then aborted the wrapper setup.

I've also set up the wrapper setup with a dummy feature, created a script-created media set to list all the installs available, displayed all my UI, then called a function in OnFirstUIAfter that runs the other setups selected using MsiInstallProduct for msi's and LaunchAppAndWait for setup.exe's. I can then track any errors using MsiInstallProduct's return code and LAAW_PARAMETERS.nLaunchResult.

In the latter project, I set the wrapper setup project's "Maintenance Experience" to "no uninstall or maintenance" and "Update Supported" to "No" so that my wrapper always runs as a new install, and in OnBegin I look for my products and set global variables so that I can present them as already installed in my UI. Basically, this project acts as an "install controller" for our suite of products so that customers can use it to install, add or remove plug-ins, upgrade, or uninstall.
0 Kudos