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:

NoteThe 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.

InstallUISequenceInstallExecuteSequence - Before Initialization
BeginBegin
PrepareDlgAppSearch
AppSearchFindRelatedProducts
FindRelatedProductsLaunchConditions
LaunchConditionsCCPSearch
CCPSearchRMCCPSearch
RMCCPSearchValidateProductID
CostInitializeCostInitialize
FileCostFileCost
CostFinalizeIsolateComponents
MigrateFeatureStatesCostFinalize
WelcomeDlgSetODBCFolders
ResumeDlgMigrateFeatureStates
MaintenanceWelcomeDlgInstallValidate
PatchWelcomeDlgRemoveExistingProducts
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 InitializationInstallExecuteSequence - Before File InstallationInstallExecuteSequence - Before Finalization
BeginInstallInitializeInstallFiles
AppSearchAllocateRegistrySpacePatchFiles
FindRelatedProductsProcessComponentsDuplicateFiles
LaunchConditionsMsiUnpublishAssembliesBindImage
CCPSearchUninstallCreateShortcuts
RMCCPSearchUnpublishComponentsRegisterClassInfo
ValidateProductIDUnpublishFeaturesRegisterExtensionInfo
CostInitializeStopServicesRegisterProgIdInfo
FileCostDeleteServicesRegisterMIMEInfo
IsolateComponentsUnregisterComPlusWriteRegistryValues
CostFinalizeSelfUnregModulesWriteINIValues
SetODBCFoldersUnregisterTypeLibrariesWriteEnvironmentStrings
MigrateFeatureStatesRemoveODBCRegisterFonts
InstallValidateUnregisterFontsInstallODBC
RemoveExistingProductsRemoveRegistryValuesRegisterTypeLibraries
- UnregisterClassInfoSelfRegModules
- UnregisterExtensionInfoRegisterComPlus
- UnregisterProgIdInfoInstallServices
- UnregisterMIMEInfoStartServices
- RemoveINIValuesRollback
- RemoveShortcutsInstall
- RemoveEnvironmentStringsCommit
- RemoveDuplicateFilesRegisterUser
- RemoveFilesRegisterProduct
- RemoveFoldersPublishComponents
- CreateFoldersMsiPublishAssemblies
- MoveFilesPublishFeatures
- - PublishProduct
- - InstallExecute
- - InstallFinalize

Return to Install operation

These standard actions are the ones that install the new version of the product.

InstallExecuteSequence - Before File InstallationInstallExecuteSequence - Before Finalization
InstallInitializeInstallFiles
AllocateRegistrySpacePatchFiles
ProcessComponentsDuplicateFiles
MsiUnpublishAssembliesBindImage
UninstallCreateShortcuts
UnpublishComponentsRegisterClassInfo
UnpublishFeaturesRegisterExtensionInfo
StopServicesRegisterProgIdInfo
DeleteServicesRegisterMIMEInfo
UnregisterComPlusWriteRegistryValues
SelfUnregModulesWriteINIValues
UnregisterTypeLibrariesWriteEnvironmentStrings
RemoveODBCRegisterFonts
UnregisterFontsInstallODBC
RemoveRegistryValuesRegisterTypeLibraries
UnregisterClassInfoSelfRegModules
UnregisterExtensionInfoRegisterComPlus
UnregisterProgIdInfoInstallServices
UnregisterMIMEInfoStartServices
RemoveINIValuesRollback
RemoveShortcutsInstall
RemoveEnvironmentStringsCommit
RemoveDuplicateFilesRegisterUser
RemoveFilesRegisterProduct
RemoveFoldersPublishComponents
CreateFoldersMsiPublishAssemblies
MoveFilesPublishFeatures
- PublishProduct
- InstallExecute
- InstallFinalize
InstallUISequence
ExecuteAction
ExitDlg

TipThe Rollback standard action is executed only if the user cancels the installation process or an error is encountered.