Windows Installer Wont Cancel

Active8 years, 3 months ago

Jul 06, 2011  MSI installation: cancel is not working. Ask Question 0. How exactly CANCEL button works in default installer UI? If the action never calls MsiProcessMessage, then Windows Installer will handle cancel for the action, but cannot cancel it in the middle of the action.

How exactly CANCEL button works in default installer UI?

If i click CANCEL button, some times i can able to see 'do you want cancel setup' dialog box with yes or no options.

But some cases, this popup won't show up and installation continues.

I am seeing this problem, if i click CANCEL button at the end of first phase only. status message is 'Coping new files'.

'Coping new files' is deferred action. How come this message is showing in first phase?

Rajeshaz09Rajeshaz09

3 Answers

Are you sure it's actually running the 'Copying new files' action, or is it an action after that which doesn't post any progress updates? If it's a custom action, be careful that it does one of two things:

  • Never calls MsiProcessMessage (or equivalent)
  • Pays attention to the return codes of MsiProcessMessage and handles cancel appropriately

If the action never calls MsiProcessMessage, then Windows Installer will handle cancel for the action, but cannot cancel it in the middle of the action. If the action calls MsiProcessMessage (with certain values for eMessageType), then Windows Installer assumes that the action will process the cancel, and the action must return ERROR_INSTALL_USEREXIT or Windows Installer gets confused.

Michael UrmanMichael Urman
14.8k2 gold badges20 silver badges36 bronze badges

How exactly CANCEL button works in default installer UI? They are using multiple threads like BackgroundWorker in WindowsForms .NET. One thread for the UI and one for the installation, if you click cancel(UI), it will try to stop the other thread(installation) AT A CERTAIN POINT IN TIME.

dppdpp
13.3k28 gold badges86 silver badges147 bronze badges

The execute sequence of an MSI installation process runs in two phases:

  1. First all actions which should be executed are written in a temporary installation script. This is immediate and it always shows the cancel popup.
  2. The second phase runs that script and actually performs the installation. It runs as deferred. Depending on when exactly you press cancel, the popup may or may not be shown.

For example, the installation can no longer be canceled when commit actions start executing.

InstallerCosmin Pirvu

Windows Installer Won't Stop

Cosmin Pirvu
19.7k5 gold badges35 silver badges56 bronze badges

Windows Module Installer Won't Stop

Not the answer you're looking for? Browse other questions tagged windows-installer or ask your own question.