Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Help with Patching and Nested Installations


3 replies to this topic

jforst

jforst
  • Full Members
  • 19 posts

Posted 10 September 2004 - 20:04

I have created two installations.

First Installation:
This setup will install a set of 3rd party dlls to my main product directory.
This has three release configurations:
1) Network Install - Fully compressed MSI
2) Network Install Base - Uncompressed MSI (matching config 1)
3) Network Install Patch 1 - Uncompressed MSI (has two new dlls)

I have created a Patch install using the Base and Patch 1 release configurations. I am able to seperately run the install of either release config 1 or 2 and then run the patch install without error.

Second Installation:
This is my main product installation which includes two custom actions to install and uninstall the First Installation as a nested MSI install. This second installation runs flawlessly for both install and uninstall.

The Problem:
Now after installing the Second Installation (which has installed both), I try to run my patch for the First Installation and get a dialog with the error message:

This action is only valid for products that are currently installed!

If I check the log file for this install it contains the error message:

MainEngineThread is returning 1605

This runtime error code means:

ERROR_UNKNOWN_PRODUCT - This action is only valid for products that are currently installed.

If I look in the registry or use the MS Windows Installer Cleanup Utility - The product appears to be fully registered!

Anyone have an idea why the patch would think that the nested msi install product is not installed?

Can Anyone tell me what the patch install is looking at to determin whether or not the patch is installed?

HELP!!!

Neo

Neo
  • Members
  • 48 posts

Posted 15 September 2004 - 13:07

I guess this is a known limitation of Windows Installer. You cannot patch nested installations. This is one of the reasons why people hate nested installations. Its a good practice to avoid using nested installations. Instaead try to chain installations or install them from the bootstrapper using SetupPrerequisites. I also remember seeing an open source bootstrapper which allows you to install prerequisites. You can check this out http://www.devage.com



jforst

jforst
  • Full Members
  • 19 posts

Posted 15 September 2004 - 17:49

Thanks for the info Neo.

This seems to be the same information I am getting from everywhere.

After working with the project quite a bit and trying many options I have found a way to almost make it work.

First, I use custom action type 23, Launch another msi package - located on source media, for installation.
Second, I use custom action type 39, Launch another msi package - An application that is advertised or already installed, for uninstall.

If you Install the product and then uninstall everything works fine.

If you run the main installation and apply a patch to the nested installation (not to the main program but the nested install), the patch installs and the program works properly.

However, when you then try to uninstall using the main installation and the custom action type 39, the main product uninstalls properly but the nested install remains fully installed. If I then run the uninstall for the nested installation, after removing the SYSTEMCOMPONENT=1 regisry value for the uninstaller, the nested install will uninstall properly. I have also tried simply removing the ARPSYSTEMCOMPONENT=1 property from the custom action command line and get the same results. From the main install the nested installation will not uninstall but from ARP it works fine.

Any ideas on why this may be doing this???

Again, thanks for replying...

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 16 September 2004 - 08:56

The MSi docs offically state that patching nested MSIs doesn't work properly. Don't try to be smarter than the folks that created MSI. Avoid nested installs.