Reviewed-by: Marc-André Lureau <[email protected]> On Mon, Aug 3, 2015 at 7:54 PM, Leonid Bloch <[email protected]> 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, downgrading is now prevented. If a user would like > to downgrade a version, he/she must uninstall the newer version first. > > Signed-off-by: Leonid Bloch <[email protected]> > --- > qga/installer/qemu-ga.wxs | 14 +++++--------- > 1 file changed, 5 insertions(+), 9 deletions(-) > > diff --git a/qga/installer/qemu-ga.wxs b/qga/installer/qemu-ga.wxs > index 2302745..41b11cf 100644 > --- a/qga/installer/qemu-ga.wxs > +++ b/qga/installer/qemu-ga.wxs > @@ -58,13 +58,9 @@ > /> > <Media Id="1" Cabinet="qemu_ga.$(env.QEMU_GA_VERSION).cab" > EmbedCab="yes" /> > <Property Id="WHSLogo">1</Property> > - <Property Id="PREVIOUSVERSIONSINSTALLED" /> > - <Upgrade Id="{EB6B8302-C06E-4bec-ADAC-932C68A3A98D}"> > - <UpgradeVersion > - Minimum="1.0.0.0" Maximum="$(env.QEMU_GA_VERSION)" > - Property="PREVIOUSVERSIONSINSTALLED" > - IncludeMinimum="yes" IncludeMaximum="no" /> > - </Upgrade> > + <MajorUpgrade > + DowngradeErrorMessage="Error: A newer version of QEMU guest agent is > already installed." > + /> > > <Directory Id="TARGETDIR" Name="SourceDir"> > <Directory Id="$(var.GaProgramFilesFolder)" Name="QEMU Guest Agent"> > @@ -125,6 +121,7 @@ > </Directory> > > <Property Id="cmd" Value="cmd.exe"/> > + <Property Id="REINSTALLMODE" Value="amus"/> > > <?ifdef var.InstallVss?> > <CustomAction Id="RegisterCom" > @@ -160,10 +157,9 @@ > </Feature> > > <InstallExecuteSequence> > - <RemoveExistingProducts Before="InstallInitialize" /> > <?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?> > </InstallExecuteSequence> > </Product> > -- > 2.4.3 >
-- Marc-André Lureau
