This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: Bundling and Packaging multiple MSI
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Dec 30, 2007
09:42 PM
Bundling and Packaging multiple MSI
I have a number of MSI packages that I would like to bundle/package in a variety of different ways depending on what the customer purchases. I'd like to avoid combining them all into one large msi due to the fact that the associated products are released at different times.
Is there a robust way to combine multiple msi's through scripting or a 3rd party installer tool?
Thanks.
Is there a robust way to combine multiple msi's through scripting or a 3rd party installer tool?
Thanks.
(3) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Dec 31, 2007
07:18 AM
We did something similar using an InstallScript project and creating a scripted media set that corresponds to the combinations that can be installed.
Once the user has made his selections, we run the MSI packages silently using MsiSetInstallLevel and MsiInstallProduct from OnFirstUIAfter. (You can also use LaunchAppAndWait, but we've gotten better results using the MSI API).
We constructed the InstallScript project to disallow maintenance - "Maintenance Experience" = no uninstall or maintenance and "Update Mode Supported" = no in the Project Properties - so that it always runs as a new install and leaves no footprints on the machine. And it, itself, has no files or other installable components.
Once the user has made his selections, we run the MSI packages silently using MsiSetInstallLevel and MsiInstallProduct from OnFirstUIAfter. (You can also use LaunchAppAndWait, but we've gotten better results using the MSI API).
We constructed the InstallScript project to disallow maintenance - "Maintenance Experience" = no uninstall or maintenance and "Update Mode Supported" = no in the Project Properties - so that it always runs as a new install and leaves no footprints on the machine. And it, itself, has no files or other installable components.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jan 02, 2008
03:38 PM
Thanks, Kathy.
How do you handle Rollback during errors or cancelled installs?
Scott
How do you handle Rollback during errors or cancelled installs?
Scott
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jan 03, 2008
07:08 AM
Probably not as well as we should!
We capture the return code from MsiInstallProduct and display a message for any individual MSI that fails, but we don't uninstall any MSIs that had run before the one that failed. I suppose it wouldn't be that hard to script an uninstall of all the previous MSIs should one fail, but our product doesn't really require that so I haven't spent the time to do it. (Our modules are fairly independent, so a failure of one only means that the customer won't have that addin until/unless he retries that install).
We capture the return code from MsiInstallProduct and display a message for any individual MSI that fails, but we don't uninstall any MSIs that had run before the one that failed. I suppose it wouldn't be that hard to script an uninstall of all the previous MSIs should one fail, but our product doesn't really require that so I haven't spent the time to do it. (Our modules are fairly independent, so a failure of one only means that the customer won't have that addin until/unless he retries that install).
![](/skins/images/19F9C6DC056868BD0EEB3511534AB4E7/responsive_peak/images/icon_anonymous_message.png)