How to Avoid Chained MSI Skips

If Major Upgrade is set to "Install setup then remove the unneeded files," situations have occurred where any chained MSIs included in the installer will be skipped causing the installation to rollback.

Blog image

While the message may vary, you should see lines within the Windows Installer log similar to the following:

Action start 10:34:26: ISChainPackagePrepare.
InstallShield 10:34:26: Skipping chained packages during major upgrade

What Causes MSI Skips
An "official" Microsoft Chained MSI action does not exist. Instead, Microsoft allowed the ability to include an embedded installer to an MSI from Windows Installer 4.5 and on. It requires manually writing an executable that is called during the installer that calls MsiInstallProduct functions ( http://msdn.microsoft.com/en-us/library/aa370315(VS.85).aspx ).

When a chained MSI is added to a project, a custom action "ISChainPackagePrepare" is also automatically added to the project. This custom action is added to the execute sequence as an immediate action and is responsible for launching the chained MSI functionality via the IsChainPackages.dll as referenced above.

In addition to adding the ISChainPackagePrepare action, adding a Chained MSI to your project will also populate the MsiEmbeddedChainer MSI table. This table is used to author multiple package installations: http://msdn.microsoft.com/en-us/library/bb736316(VS.85).aspx

The failure to launch an embedded installer in these specific circumstances appears to be a limitation of the Windows Installer and is not caused by InstallShield.

Workarounds
1. Use the setting "Completely uninstall old setup before installing new setup"
2. Rather than including the secondary MSI as a chained installer, use a Suite Project to wrap both installers into a single setup.exe. This preserves the ability to rollback the installer completely if one of the installers was to fail.

What workarounds have you created for smooth MSI chains?

 

InstallAnywhere is the leading multiplatform development solution for application producers who need to deliver a professional and consistent cross installation experience for physical, virtual and cloud environments. From a single project file and build environment, InstallAnywhere creates reliable installations for on-premises platforms – Windows, Linux, Apple OS X, Solaris, AIX , HP-UX, and IBM iSeries – and enables you to take existing and new software products to a virtual and cloud infrastructure.  Get your free trial of InstallAnywhere or contact us for more information. 

InstallShield® is the world's leading Windows installation development solution. InstallShield is designed to enable development teams to be more agile, collaborative and flexible when building reliable InstallScript and Windows Installer MSI installations for desktop, server, Web, virtual and traditional applications. The software installer of choice for today's sophisticated application producers, InstallShield is the only software installer that can directly convert MSIs to Microsoft App-V virtual packages. Get your free trial of InstallShield today or contact us for more information.

Leave a Reply

Your email address will not be published. Required fields are marked *