[wix-users] Major Upgrade Service Installer Displays Files-In-Use

Johan Heikkila johan.heikkila at fi.abb.com
Wed Nov 6 22:50:19 PST 2019


We moved to a bootstrapper and got rid of what I think could be a similar problem. When the whole installation runs elevated, services are always stopped.

Another issue of ours was that our services were .NET based, and dependent assemblies are registered not until after InstallFinalize. But you aren't allowed to schedule service start (deferred) after InstallFinalize. It's possible to work around (with groups and ownerships of the services), but the easiest way is to use a bootstrapper (bundle).


-----Original Message-----
From: wix-users <wix-users-bounces at lists.wixtoolset.org> On Behalf Of Bryan Dam via wix-users
Sent: torsdag 7 november 2019 02:34
To: wix-users at lists.wixtoolset.org
Cc: Bryan Dam <bryand at recastsoftware.com>
Subject: [wix-users] Major Upgrade Service Installer Displays Files-In-Use

CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.

Coming up against what I think Neil Sleightholm describes in this thread: https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwindows-installer-xml-wix-toolset.687559.n2.nabble.com%2FFiles-in-use-td2869019.html&data=02%7C01%7C%7C0d131b94f8674f8769ff08d7631a3431%7C372ee9e09ce04033a64ac07073a91ecd%7C0%7C0%7C637086836504757670&sdata=lGJirQQs0biUpKGqJzQTTAostdcqImImo5%2F4te2QQ1Q%3D&reserved=0

We have a fairly simple installer that installs one of two services.  Really it's the same service with the same set of files but with the choice of running as LocalSystem versus a specified account.  We would like to create a major update that will not re-prompt the user for the service credentials.  To that end we've defined the following in InstallExecutionSequence to not modify the service itself on upgrades:
<DeleteServices>NOT UPGRADINGPRODUCTCODE</DeleteServices>
<InstallServices>NOT WIX_UPGRADE_DETECTED</InstallServices>

The two service components both include:
<ServiceControl Id="<Unique Name Here>" Start="install" Stop="both" Remove="uninstall" Name="Proxy" Wait="yes" />

This seems to work just fine.  The service is installed on install, removed on uninstall, stopped and started on major upgrades.  The only hiccup is that when doing a major upgrade we get the files-in-use dialog pointing to the service's process.  Which is because the installer hasn't stopped the service yet.  Click 'ignore' and everything installs fine and you can see the service being stopped and started properly (including waiting for it to start).  Run it silently and it installs just fine.

Any idea of how to handle this and avoid the files-in-use dialog?

FWIW, there's nothing being installed outside of the files required by the service itself so simply disabling that dialog is on the table since there's no other relevant files that would be in use.  I've seen suggestions of setting MSIRESTARTMANAGERCONTROL to Disable but that didn't seem to change anything.


WiX Toolset Users Mailing List provided by FireGiant https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.firegiant.com%2F&data=02%7C01%7C%7C0d131b94f8674f8769ff08d7631a3431%7C372ee9e09ce04033a64ac07073a91ecd%7C0%7C0%7C637086836504757670&sdata=sQ%2B8nNwSqPG6IUVu%2FkhyJX0DZFyY3uViWhbACyqM85U%3D&reserved=0

More information about the wix-users mailing list