[wix-users] FilesInUse event

Roland K rolandkieslinger at gmail.com
Thu Oct 19 02:24:43 PDT 2017


I didn't know about the two different file lock types, so thanks for
explaining!

Let me clarify my intent: If somebody tries to update an existing
installation and there are still apps started, which should be getting
updated, then I want the user to close the apps. This should release the
file locks, whatever they are soft or hard. To achieve this, I thought I
can use the "FilesInUse" event to get the locked files/apps and then be
able to notify the user. I can't close the apps programmatically for
various reasons.

Is there another way to detect if there are some files soft/hard locked, so
I can notify the user and tell him, which apps he has to close to continue
with the update? Or can I change the behaviour of the msi installation, to
get the event raised on both lock types?

There's one thing, I don't understand: I have a virtual machine with only
win 10 installed. If I install our setup and try an update on that, I get
the FileInUse event raised in about 20-30 % of the time. So I really try to
do the same on every test (resetting the virtual machine to a checkpoint
before), but sometimes I get the event, and sometimes not.

2017-10-18 19:17 GMT+02:00 Blair Murri via wix-users <
wix-users at lists.wixtoolset.org>:

> In Windows, there are basically two kinds of in-use file locks: soft (the
> file can be moved and deleted during next reboot) and hard (can't). If the
> file is soft-locked, then only that process needs to be recycled, not the
> entire system, thus eliminating the dreaded reboot.
>
>
>
> MSI does what it can to avoid reboots, because of the negative effect they
> have on customer satisfaction. If the file is hard-locked, the new version
> of the file will be written to a temporary location and will only replace
> the old file during the next reboot, while soft-locks allow for inplace
> replacement, where removal of the old file isn't critical. Thus, only
> hard-locks will result in FilesInUse prompts.
>
>
>
> If you need to ensure that your application processes are recycled during
> upgrades, it's recommend you register them with the restart manager
> (services should already be authored in such a way as to already be stopped
> and started as part of the upgrade sequence). WiX includes support for this
> registration.
>
>
>
> Blair Murri
>
>
>
> Sent from my Windows 10 phone
>
>
>
> From: Roland K via wix-users<mailto:wix-users at lists.wixtoolset.org>
> Sent: Wednesday, October 11, 2017 6:52 AM
> To: wix-users at lists.wixtoolset.org<mailto:wix-users at lists.wixtoolset.org>
> Cc: Roland K<mailto:rolandkieslinger at gmail.com>
> Subject: Re: [wix-users] FilesInUse event
>
>
>
> I found the following lines in the log:
>
> Aktion gestartet um 15:38:27: InstallValidate.
> MSI (s) (DC:90) [15:38:27:724]: PROPERTY CHANGE: Deleting
> MsiRestartManagerSessionKey property. Its current value is
> '3c5e7e74b929e943bf1e2d63080c406c'.
> ...
> MSI (s) (DC:90) [15:38:32:404]: RESTART MANAGER: Did detect that a critical
> application holds file[s] in use, so a reboot will be necessary.
> ...
> Aktion gestartet um 15:38:35: RemoveExistingProducts. *(old msi is getting
> started - I'm doing MajorUpgrades with Schedule="afterInstallInitialize")*
> *...*
> Aktion gestartet um 15:38:36: InstallValidate.
> MSI (s) (DC:48) [15:38:36:696]: PROPERTY CHANGE: Deleting
> MsiRestartManagerSessionKey property. Its current value is
> 'f9337d59ae6e2247a247bae8eec8a76f'.
> ...
> MSI (s) (DC:48) [15:38:38:347]: RESTART MANAGER: Did detect that a critical
> application holds file[s] in use, so a reboot will be necessary.
> ...
> MSI (s) (DC:48) [15:38:48:084]: PROPERTY CHANGE: Adding ReplacedInUseFiles
> property. Its value is '1'.
> MSI (s) (DC:48) [15:38:48:085]: PROPERTY CHANGE: Deleting UpdateStarted
> property. Its current value is '1'.
> Aktion beendet um 15:38:48: InstallFinalize. Rückgabewert 1.
>
>
> As we see here, the installer detected the replaced files, shouldn't it
> then raise the "FilesInUse" event in the parents bootstrapper?
>
> 2017-10-11 15:18 GMT+02:00 Roland K <rolandkieslinger at gmail.com>:
>
> > I have a custom bootstrapper with a msi inside.
> >
> > If I wanna update an existing installation, but there's still an
> > application open (or a file in use) which should be replaced, I wanna
> show
> > a dialog, so the user can decide if he wants to retry, ignore or cancel
> it.
> > Sometimes the "FilesInUse" event of BootstrapperApplication gets raised
> so
> > I can show the dialog, but sometimes NOT.
> >
> > Why?
> >
> > What can be the reasons the event is not raised?
> >
> > Thanks in advance!
> >
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>



More information about the wix-users mailing list