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

Purpose of moving RemoveExistingProducts below InstallFinali


3 replies to this topic

rbrinda

rbrinda
  • Full Members
  • 65 posts

Posted 28 December 2001 - 01:23

Can someone please explain the purpose of moving RemoveExistingProducts action just after InstallFinalize action in a major upgrade? In my major upgrade patch, i have RemoveExistingProducts action as the last one in the sequence. Will this cause any problems during the upgrade? Please help.

Thanks.


Ian Blake

Ian Blake
  • Members
  • 483 posts

Posted 28 December 2001 - 02:22

RemoveExistingProducts calls the old version of the installation to uninstall itself.

If it is placed early in the sequence the whole of the previous product is removed before the new verson is installed.  This can involve a lot of file movement and caching, even for components that are completely unchanged.

The optimum position for RemoveExistingProducts is after InstallFinalize.  In this case the old install will not remove components that are still in the new version.  This clearly results in less file movement and registry activitiy.

It is quite normal for RemoveExistingProducts to be the last action in the install execute sequence.  It is unusual to have other actions after InstallFinalize.


rbrinda

rbrinda
  • Full Members
  • 65 posts

Posted 28 December 2001 - 19:35

Thanks for the explanation.

In your reply you have mentioned, "It is quite normal for RemoveExistingProducts to be the last action in the install execute sequence.  It is unusual to have other actions after InstallFinalize. "

So does it make any difference if other actions are placed after InstallFinalize and before RemoveExistingProducts, RemoveExistingPRoducts being the last one in the sequence? Because, in my install project, i have a lot of CAs placed after InstallFinalize and RemoveExistingProducts is the last one.

Thanks.


Ian Blake

Ian Blake
  • Members
  • 483 posts

Posted 29 December 2001 - 03:05

Best practice dictates that any action that modifies the system should be a deferred action.  ie. before InstallFinalize.  However this is not enforced and it is possible to place immediate actions wherever you please.

I have read somewhere (not in the documentation) that the values of component, feature and some property values are unsafe after InstallFinalize but I have never seen any evidence of this.