In this article we will present the standard actions that are executed during a package Upgrade operation when uninstall old version first and then install new version option is selected. In it's essence an Upgrade operation can be split into the following operations:
- Start Install operation and find the older version of the product.
- Start Uninstall operation and remove the older version of the product.
- Return to the Install operation and continue with setting up the new product's version.
In the below tables the standard actions that are executed are bold while the ones that aren't executed are written in italic:
The order in which the standard actions are executed is by column
starting from left to right.
Install operation
These standard actions are the ones executed in the first phase of an Upgrade.
| InstallUISequence | InstallExecuteSequence - Before Initialization | |
| Begin | Begin | |
| PrepareDlg | AppSearch | |
| AppSearch | FindRelatedProducts | |
| FindRelatedProducts | LaunchConditions | |
| LaunchConditions | CCPSearch | |
| CCPSearch | RMCCPSearch | |
| RMCCPSearch | ValidateProductID | |
| CostInitialize | CostInitialize | |
| FileCost | FileCost | |
| CostFinalize | IsolateComponents | |
| MigrateFeatureStates | CostFinalize | |
| WelcomeDlg | SetODBCFolders | |
| ResumeDlg | MigrateFeatureStates | |
| MaintenanceWelcomeDlg | InstallValidate | |
| PatchWelcomeDlg | RemoveExistingProducts | |
| ProgressDlg | - | |
| ExecuteAction | - | |
Uninstall operation
If an older version of the product was found these standard actions are executed during the old product removal.
| InstallExecuteSequence - Before Initialization | InstallExecuteSequence - Before File Installation | InstallExecuteSequence - Before Finalization | ||
| Begin | InstallInitialize | InstallFiles | ||
| AppSearch | AllocateRegistrySpace | PatchFiles | ||
| FindRelatedProducts | ProcessComponents | DuplicateFiles | ||
| LaunchConditions | MsiUnpublishAssemblies | BindImage | ||
| CCPSearch | Uninstall | CreateShortcuts | ||
| RMCCPSearch | UnpublishComponents | RegisterClassInfo | ||
| ValidateProductID | UnpublishFeatures | RegisterExtensionInfo | ||
| CostInitialize | StopServices | RegisterProgIdInfo | ||
| FileCost | DeleteServices | RegisterMIMEInfo | ||
| IsolateComponents | UnregisterComPlus | WriteRegistryValues | ||
| CostFinalize | SelfUnregModules | WriteINIValues | ||
| SetODBCFolders | UnregisterTypeLibraries | WriteEnvironmentStrings | ||
| MigrateFeatureStates | RemoveODBC | RegisterFonts | ||
| InstallValidate | UnregisterFonts | InstallODBC | ||
| RemoveExistingProducts | RemoveRegistryValues | RegisterTypeLibraries | ||
| - | UnregisterClassInfo | SelfRegModules | ||
| - | UnregisterExtensionInfo | RegisterComPlus | ||
| - | UnregisterProgIdInfo | InstallServices | ||
| - | UnregisterMIMEInfo | StartServices | ||
| - | RemoveINIValues | Rollback | ||
| - | RemoveShortcuts | Install | ||
| - | RemoveEnvironmentStrings | Commit | ||
| - | RemoveDuplicateFiles | RegisterUser | ||
| - | RemoveFiles | RegisterProduct | ||
| - | RemoveFolders | PublishComponents | ||
| - | CreateFolders | MsiPublishAssemblies | ||
| - | MoveFiles | PublishFeatures | ||
| - | - | PublishProduct | ||
| - | - | InstallExecute | ||
| - | - | InstallFinalize | ||
Return to Install operation
These standard actions are the ones that install the new version of the product.
| InstallExecuteSequence - Before File Installation | InstallExecuteSequence - Before Finalization | |||
| InstallInitialize | InstallFiles | |||
| AllocateRegistrySpace | PatchFiles | |||
| ProcessComponents | DuplicateFiles | |||
| MsiUnpublishAssemblies | BindImage | |||
| Uninstall | CreateShortcuts | |||
| UnpublishComponents | RegisterClassInfo | |||
| UnpublishFeatures | RegisterExtensionInfo | |||
| StopServices | RegisterProgIdInfo | |||
| DeleteServices | RegisterMIMEInfo | |||
| UnregisterComPlus | WriteRegistryValues | |||
| SelfUnregModules | WriteINIValues | |||
| UnregisterTypeLibraries | WriteEnvironmentStrings | |||
| RemoveODBC | RegisterFonts | |||
| UnregisterFonts | InstallODBC | |||
| RemoveRegistryValues | RegisterTypeLibraries | |||
| UnregisterClassInfo | SelfRegModules | |||
| UnregisterExtensionInfo | RegisterComPlus | |||
| UnregisterProgIdInfo | InstallServices | |||
| UnregisterMIMEInfo | StartServices | |||
| RemoveINIValues | Rollback | |||
| RemoveShortcuts | Install | |||
| RemoveEnvironmentStrings | Commit | |||
| RemoveDuplicateFiles | RegisterUser | |||
| RemoveFiles | RegisterProduct | |||
| RemoveFolders | PublishComponents | |||
| CreateFolders | MsiPublishAssemblies | |||
| MoveFiles | PublishFeatures | |||
| - | PublishProduct | |||
| - | InstallExecute | |||
| - | InstallFinalize | |||
| InstallUISequence | ||||
| ExecuteAction | ||||
| ExitDlg | ||||
The Rollback standard
action is executed only if the user cancels the
installation process or an error is encountered.