In scenario #1, Windows Installer will not by default [prompt for] reboot. In scenario #2, there are two possibilities: 2.1 - RemoveExistingProducts is scheduled early and this is a major upgrade: Removal of the old file occurs before writing of the new file: no [prompt for] reboot (same as scenario #1). 2.2 - all other cases (RemoveExistingProducts scheduled late or non-major upgrade): File is overwritten (assuming that the component rules were followed) and a prompt for reboot occurs.
For any other possibility you have to detect the situation yourself and ask for the reboot prompt. The simplest way is to always ask for reboot except for clean initial installation, or ask for reboot always (I assume that the shell has to be restarted no matter what to start using a new shell extension). The next simplest is to change your MsiRMFilesInUse dialog such that the ignore button is either disabled, hidden or removed (thus the user has no choice but to use the restart manager), although that won't help with basic or silent installations. The third option is to add an embedded UI (assuming your minimum MSI version is 4.5) or ensure that your transactions are always under the control of a bootstrapper (hard to do, under the best circumstances) and capture the MsiRMFilesInUse call to always return a code for using the restart manager without ever showing the option to the user. Next harder is to duplicate the files-in-use logic yourself and set a property. There may be some property that gets set when a file-in-use is detected, but I have never seen it. -----Original Message----- From: Ivo Beltchev [mailto:i...@roadrunner.com] Sent: Wednesday, July 14, 2010 9:27 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Restart Manager (reboot after uninstall) This is a shell extension and the DLL is used by the Explorer process. There are two scenarios: 1) Uninstall - no file is actually "replaced", simply deleted. 2) Upgrade - the DLL is replaced by a new version. The Restart Manager correctly identifies that the DLL is in use by Explorer and offers to close it. If I choose to close it, everything works fine - The Explorer is closed, then restarted at the end of the install process. If I choose not to close it at this time I expect a prompt to reboot the machine at the end. I don't get one. So the old version of the DLL is still loaded by Explorer, preventing the new version from showing up. The thing gets a bit more complicated because the shell extension gets loaded in other processes that use the shell (pretty much every app that has a FileOpen box). That's why I want to rely on the Restart Manager to do its thing instead of trying to make a custom solution specifically for Explorer.exe. Blair wrote: > If you didn't replace one of the files that were discovered to be in use, > then no, you won't get an automatic reboot prompt. Which file did you > replace when you uninstalled your application? > > -----Original Message----- > From: Ivo Beltchev [mailto:i...@roadrunner.com] > Sent: Wednesday, July 14, 2010 9:04 AM > To: General discussion for Windows Installer XML toolset. > Subject: Re: [WiX-users] Restart Manager (reboot after uninstall) > > But I don't want to restart unconditionally. Only when the user chooses > to stop the Restart Manager from closing the offending applications. Is > there a way to detect that? > > I'm reading the documentation for the REBOOT property here: > http://msdn.microsoft.com/en-us/library/aa371101(VS.85).aspx > It says "For example, the installer automatically prompts for a restart > if it needs to replace any files in use during the installation." So I'm > thinking that I should get a reboot prompt at the end of the uninstall > or upgrade. But there isn't one. Am I reading the documentation correctly? > > Blair wrote: > >> If you have code that causes the application(s) detected to shutdown >> (including using the built-in actions to stop services you install) the >> restart manager-related detection code doesn't always acknowledge that. As >> > a > >> result the user is often told of a need for reboots that ultimately are >> never required. >> >> If files-in-use are not replaced (just moved/marked for removal on next >> reboot) then Windows Installer doesn't ask for a reboot unless a >> reboot-related action or property are set indicating otherwise. In >> uninstallations, that is often the case. >> >> You could try setting REBOOT=Force when you detect that you will be >> uninstalling. That should cause a reboot prompt. >> >> The reason for reboot instead of logoff is that the system that removes >> marked files system boot during isn't activated during logoff or logon, so >> the marked files are never actually removed until an actual reboot. >> >> -----Original Message----- >> From: Ivo Beltchev [mailto:i...@roadrunner.com] >> Sent: Tuesday, July 13, 2010 8:55 PM >> To: General discussion for Windows Installer XML toolset. >> Subject: [WiX-users] Restart Manager (reboot after uninstall) >> >> Hi >> >> I have an uninstaller that uses the Restart Manager. When it detects >> that files are in use it shows one of two messages: >> >> 1) When uninstalling in quiet mode, there is a popup saying "...... a >> reboot will be required to complete the setup" >> >> 2) When uninstalling in UI mode, there is a list of processes with 2 >> options: A) restart applications, B) Do not close applications. A reboot >> will be required. >> >> I am expecting that after the uninstaller is finished there will be a >> prompt to restart the computer, but I don't get one. >> >> Reading about MsiRMFilesInUse here: >> http://wix.sourceforge.net/manual-wix3/WixUI_dialogs.htm, I see "It >> allows the user to attempt to automatically close applications or ignore >> the prompt and result in the setup requiring a reboot after it >> completes." What does "result in requiring a reboot" mean? That the >> setup will ask the user to reboot, or that the user must remember to >> reboot manually? >> >> If there is no reboot prompt built in, how do I make one (basically how >> do I detect if the user has chosen not to close the applications)? And >> even better, if I can customize the prompt to do a log off instead of >> reboot. >> >> >> Thanks >> Ivo >> >> >> >> >> > ---------------------------------------------------------------------------- > >> -- >> This SF.net email is sponsored by Sprint >> What will you do first with EVO, the first 4G phone? >> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first >> _______________________________________________ >> WiX-users mailing list >> WiX-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/wix-users >> >> >> >> > ---------------------------------------------------------------------------- > -- > >> This SF.net email is sponsored by Sprint >> What will you do first with EVO, the first 4G phone? >> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first >> _______________________________________________ >> WiX-users mailing list >> WiX-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/wix-users >> >> >> > > ---------------------------------------------------------------------------- > -- > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > > ---------------------------------------------------------------------------- -- > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > ---------------------------------------------------------------------------- -- This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users