PDA

View Full Version : Nested MSI, can this be done?



SteveoChicago
03-28-2007, 12:13 PM
I've created a Transform to configure Project 2003 and want to install SP2 too. I'm trying to launch the msi as a custom action. AS claims this can be done but I've never been able to do it. Has anyone ever been able to get this to work or is this feature just in AS but not working yet?

Thx :confused:

Edit: Upon doing some research, MS says that you can use the Windows Installer SDK to merge two msi's together. I will try this and report back here.

http://support.microsoft.com/kb/306439 - How to Create a Nested .msi package

VILEPARLE
03-28-2007, 02:43 PM
You can initiate the nested MSI in UI mode only using msiexec.exe.
Nested MSI is not recommended by Microsoft.

http://msicommunity.msiuniversity.org/

LeslieEaster
03-29-2007, 07:57 AM
Nested .msis are possible and they are relatively easy to implement. However, there are some details that you need to take care of. First, the nested .msi must be run as an immediate custom action. This means that it's actually installed before the core application. Also, the action must be placed after InstallInitialize. You'll also need to take care of the uninstall of the nested msi within the parent package. Because of this you should use ARPSYSTEMCOMPONENT=1 in the nested msi so that it does not show up in the ARP applet.

TsungH
04-02-2007, 06:38 PM
Nested installation cannot be run in Immediate Execute Sequence or UI sequence. Calling msiexec.exe to install another MSI is by definition not a nested installation.

Before you go down the path of using nested installation, you will want to read up on Concurrent Installations (http://msdn2.microsoft.com/en-us/library/aa368010.aspx).

Cary R
04-03-2007, 12:16 AM
Do you know if SP2 is distributed as an *.msp? You can check by running the SP2 install on a system and monitoring the %TEMP% folder to see if an *.msp gets laid down.

If it's a windows installer patch, it opens the option of creating an Administrative Image, and then applying the patch via:

msiexec.exe /p <patch package> /a <package>

...But you have to be careful with this as well, since Microsoft has Best Practice issues with this just like Nested MSI's. Really, the best option would be some sort of bootstrapper that calls the main MSI and then the SP2...but I'm only aware of the MultiPlatform suite installer that will do this out of the box.