A nested installation is a type of Custom Action that installs or removes another .msi package (sometimes called the child MSI) from within a running installation (called the parent MSI).
To install all the features of the child installation with their default settings, and to use the same value for the ALLUSERS property used by the parent installation, type the following into the Target field.
ARPSYSTEMCOMPONENT=1 ADDDEFAULT=ALL ALLUSERS=[ALLUSERS]
One can use similar expressions to use the same value of INSTALLDIR in the child as in the parent.
A child MSI is not automatically removed when the parent product is removed. However, one can create a second nested-installation custom action that does this.
The cons of using the Nested MSI's are,
This above information has been gathered and documented from various sites like Macromedia, MSDN and Altiris.
Hope this congregated article is useful for all...
Cheers' Viju
Will the parent msi have means to check in the registry that the child msi was installed by it or as standalone?
Ideally, it should be right?
Because the installer(.msi) is not dynamic. Its the static information given by the one who created it. So it will some where store that the child msi was already present or if it was installed through parent. SO that uninstallation will uninstall child only if parent uninstalled.
Where is that registry information found? Any ideas?
Why should this be used under Cost Finalize srciptline only ?
Will this nesting work in Differed execution mode ?
Installlation and Un-installation challenges can be effectively solved with using Installer 4.5 or above. We have a new Multi Package Transaction feature being added. Check it for more info.
You forgot to mention that another disadvantage of having nested msi's is that you cannot individually uninstall child msi's for upgrading/patching purposes.