Hi On Wed, Jul 29, 2015 at 7:09 PM, Leonid Bloch <leo...@daynix.com> wrote: > Previously, running the .msi would unregister the QEMU GA VSS service if QEMU > GA was > already installed on the machine, and then register it only if QEMU GA was > NOT previously > installed. This behavior caused the service to be registered only after the > INITIAL > installation, and any subsequent run of the .msi (to redo, repair, or upgrade > the > installation) ended in the service being unregistered. > > Now, the VSS service is still unregistered if QEMU GA is already installed > (so that a > fix or an update could be performed) but then it is registered again (if the > GA is not > being uninstalled) thus finishing the repair/upgrade correctly. > Additionally, smooth upgrades and downgrades can be performed, as any run of > the .msi > will firstly remove the installed version, no matter what its version number > is.
This is quite unconventional. It's a good thing to prevent downgrade by default imho. User can override this behaviour by first uninstalling. > > Signed-off-by: Leonid Bloch <leo...@daynix.com> > --- > qga/installer/qemu-ga.wxs | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/qga/installer/qemu-ga.wxs b/qga/installer/qemu-ga.wxs > index 4e917a9..cd731c4 100644 > --- a/qga/installer/qemu-ga.wxs > +++ b/qga/installer/qemu-ga.wxs > @@ -61,9 +61,9 @@ > <Property Id="PREVIOUSVERSIONSINSTALLED" /> > <Upgrade Id="{EB6B8302-C06E-4bec-ADAC-932C68A3A98D}"> > <UpgradeVersion > - Minimum="1.0.0.0" Maximum="$(env.QEMU_GA_VERSION)" > + Minimum="1.0.0.0" Maximum="99.99.99.99" > Property="PREVIOUSVERSIONSINSTALLED" > - IncludeMinimum="yes" IncludeMaximum="no" /> > + IncludeMinimum="yes" IncludeMaximum="yes" /> > </Upgrade> I suggest we use MajorUpgrade instead. It should work with wixl: http://wixtoolset.org/documentation/manual/v3/howtos/updates/major_upgrade.html > > <Directory Id="TARGETDIR" Name="SourceDir"> > @@ -136,10 +136,10 @@ > </Feature> > > <InstallExecuteSequence> > - <RemoveExistingProducts Before="InstallInitialize" /> > + <RemoveExistingProducts After="FindRelatedProducts" /> > <?ifdef var.InstallVss ?> > - <Custom Action="RegisterCom" After="InstallServices">NOT > Installed</Custom> > <Custom Action="UnRegisterCom" After="StopServices">Installed</Custom> > + <Custom Action="RegisterCom" After="InstallServices">NOT > REMOVE</Custom> > <?endif?> looks good to me > </InstallExecuteSequence> > </Product> > -- > 2.4.3 > > -- Marc-André Lureau