[wix-users] Uninstall of msi should trigger uninstall of bootstrapper

Andreas Hirth a_hirth at foxitsoftware.com
Mon Sep 17 01:39:40 PDT 2018


Hi Farrukh,

Edwin already pointed out that you can in principle trigger the bundle uninstallation from the MSI during uninstall. In fact we do exactly this in one of our installers for other reasons.

The approach we implemented is quite straight forward:
1. Have the Bundle pass the [WixBundleProviderKey] variable to the MIS.
2. The MSI stores that value in the registry.
3. On uninstall that key is used to find the right place in the registry to get the QuietUnistallString of the bundle, e.g. SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\<BundleProviderKey> via a type 1 custom action scheduled early in the sequence.
4. The QuietUninstallString is used in a type 34 immediate custom action which is triggered after InstallFinalize in the InstallExecuteSequence in case of complete uninstallation of the MSI, we let this custom action be called with "asyncNoWait" to not have it block anything.

You know, since this is not something officially supported in WiX you must be careful when updating WiX and check, for example, if the registry keys and values have been changed. 

I hope this helps,
Andreas


> -----Original Message-----
> From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf
> Of Farrukh Waheed via wix-users
> Sent: Saturday, September 15, 2018 5:52 AM
> To: egcastr at gmail.com
> Cc: Farrukh Waheed <farrukh1 at gmail.com>; WiX Toolset Users Mailing List
> <wix-users at lists.wixtoolset.org>
> Subject: Re: [wix-users] Uninstall of msi should trigger uninstall of
> bootstrapper
> 
> Hi Edwin,
> That's a third-party software. It has a defined and documented plugin
> structure including plugin's deployment. We have to add a defined custom
> action which calls its PluginManager's commands to install the plugin and
> make it available inside its IDE. This PluginManger also keeps track of plugin's
> msi installation.
> My guess is that, when Uninstall of this software is triggered, it might be its
> own custom bootstrapper which uninstalls its plugins first using same
> PluginManager, then its own msi.
> 
> 
> On Sat, 15 Sep 2018 at 03:01, Edwin Castro <egcastr at gmail.com> wrote:
> 
> > I don't know what "When the user uninstalls that software, it
> > automatically triggers the uninstall of its plugins (internally via
> > Windows Installer Service i.e. msi)" means but an MSI cannot uninstall
> another MSI.
> >
> > Are you saying that a bootstrapper for the main software is
> > uninstalling the main software's msi and also uninstalling the msi for
> > each plugin? If so, how does the main software bootstrapper know which
> > plugin msi to uninstall? Perhaps that should be changed so that it
> > instead uninstalls your bootstrapper.
> >
> > --
> > Edwin G. Castro
> >
> >
> > On Fri, Sep 14, 2018 at 8:34 AM Farrukh Waheed via wix-users <
> > wix-users at lists.wixtoolset.org> wrote:
> >
> >> Hi,
> >> I'm delivering a plugin (In chained msi in our custom bootrapper) for
> >> a software. When the user uninstalls that software, it automatically
> >> triggers the uninstall of its plugins (internally via Windows
> >> Installer Service i.e.
> >> msi). But that leaves our Bootstrapper there in Control Panel. Now if
> >> someone tries to uninstall it, bootstrapper would be asking to
> >> Install itself (again) which would be failed as the parent software
> >> which will host the plugin is not there.
> >> Is there any event, which could trigger the uninstall of Bootstrapper
> >> whenever the chained msi is triggered to uninstall?
> >>
> >> Thanks a bunch.
> >> Farrukh
> >>
> >>
> __________________________________________________________
> __________
> >> 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