Maybe: the CloseApps WiX extension could detect that your shell extension is
loaded and then you could use that to condition a ScheduleReboot action.

On Wed, Jul 14, 2010 at 1:36 PM, <i...@roadrunner.com> wrote:

> Right. So basically the Windows Installer/Restart Manager combo don't work
> very well for shell extensions that can be loaded in various processes.
>
> Probably the best thing I can do is try to detect the user's response to
> the Restart Manager prompt run a ScheduleReboot action if the user has
> selected to not close the offending processes. Also if running in basic UI
> mode and the shell feature is installed.
> Looking at the sources, I think I can do something like:
> <InstallExecuteSequence>
>  <ScheduleReboot After='InstallFinalize'>WixUIRMOption="DontUseRM" OR
> (UILevel=2 AND !MyFeature=3)</ScheduleReboot>
> </InstallExecuteSequence>
>
>
>
>
> ---- Blair <os...@live.com> wrote:
> > Believe it or not, there is a saying oft repeated in the hallways at
> Microsoft: "Reboots are evil". The current design in Windows Installer is to
> request a reboot only when under no reasonable scenario can the reboot be
> avoided (such as an upgrade of a running program when the program won't
> "die" during the upgrade).
> >
> > If a running program is holding a file in use, Windows Installer will
> move/rename that file and mark it for removal upon the next reboot (the move
> is into a hidden directory). If the move happens as a result of a removal
> attempt, the file is considered to be "safe" for the program to continue to
> use until it is shutdown by the user at their convenience (it is up to each
> program to fail gracefully if some other file they didn't hold open is
> suddenly missing or who's version/content suddenly changes). If, on the
> other hand, the developer of the program knows that the program can't safely
> continue to use the file(s), it is up to the developer to stop the running
> instances of the program(s) or force a reboot, since Windows Installer
> cannot possibly know who is good at defensive programming and who is not
> (even when the program comes from the Windows team).
> >
> > -----Original Message-----
> > From: i...@roadrunner.com [mailto:i...@roadrunner.com]
> > Sent: Wednesday, July 14, 2010 12:16 PM
> > To: General discussion for Windows Installer XML toolset.
> > Cc: Blair
> > Subject: Re: [WiX-users] Restart Manager (reboot after uninstall)
> >
> > OK, so basically you are saying that the restart prompt is only supposed
> to appear during an upgrade when a file is being replaced.
> > In my case I'm always using a major upgrade, so the old version is
> uninstalled first, then the new one is installed. No file is directly
> "overwritten".
> >
> > It is a bit weird that the system doesn't handle uninstalls or major
> upgrades, but I can live with that. I don't have a problem if I'm getting
> the intended behavior. My only concern is that I'm somehow breaking a
> feature I'm supposed to get out of the box.
> >
> >
> > ---- Blair <os...@live.com> wrote:
> > > 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
> >
> >
> >
> >
> ------------------------------------------------------------------------------
> > 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
>
>


-- 
virtually, Rob Mensching - http://RobMensching.com LLC
------------------------------------------------------------------------------
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

Reply via email to