Removing Child Products

Project: This information applies to the following project types:

Basic MSI
InstallScript MSI
MSI Database
Transform

Important:Nested installations is a deprecated feature of the Windows Installer. Applications installed with nested installations sometimes fail because they are difficult for end users to service correctly. Microsoft Corporation recommends that you avoid using nested installations and nested-installation custom actions to install products that are intended to be released to the public. To learn more, see Concurrent Installations in the Windows Installer Help Library.

A child product is not automatically removed when the parent product is removed. However, you can create a second nested-installation custom action that does this.

To create the custom action:

1. In the View List under Behavior and Logic, click Custom Actions and Sequences.
2. Right-click the Custom Actions explorer and click Custom Action Wizard. The Custom Action Wizard opens.
3. On the Basic Information panel, specify a name and comment for your custom action and click Next.
4. On the Action Type panel, in the Type list, select Launch another .msi package. In the Location list, select An application that is advertised or already installed.
5. On the Action Parameters panel, browse for the location of the .msi file that you want to remove. In the Target box, leave the default properties:

ALLUSERS=[ALLUSERS] REMOVE=ALL

6. Accept the default options on the Additional Options panel and click Next until you finish the wizard.

To sequence this custom action:

1. In the View List under Behavior and Logic, click Custom Actions and Sequences.
2. In the Sequences explorer, under the Installation sequence, expand the Execute item. The actions and dialogs that are scheduled for this sequence are listed.
3. Right-click InstallValidate and click Insert. The Insert Action dialog box opens.
4. Select the new custom action.
5. In the Condition box, type the following:

REMOVE="ALL"

6. Click OK.

This custom action will uninstall the child product when the parent product is uninstalled.

Note:When you are creating a nested-installation custom action of type Launch another .msi package with the Location setting set to Stored on the source media, be aware of the following:

The child installation must not be compressed inside a Setup.exe installation launcher.
If the child installation’s files are not compressed inside the child .msi database, you must manually copy the child installation’s files to the Disk1 folder of the parent installation’s release folder.

See Also