Upgrading by double-clicking the .msi - Mailing list pgsql-odbc

From Heikki Linnakangas
Subject Upgrading by double-clicking the .msi
Date
Msg-id 53A93B9B.8090905@vmware.com
Whole thread Raw
Responses Re: Upgrading by double-clicking the .msi  (Marco Gaiarin <gaio@sv.lnf.it>)
Re: Upgrading by double-clicking the .msi  (Craig Ringer <craig@2ndquadrant.com>)
Re: Upgrading by double-clicking the .msi  (Dave Page <dpage@pgadmin.org>)
List pgsql-odbc
Upgrading the driver by double-clicking the new .msi file doesn't work:

  "Another version of this product is already installed."

That's why we include the upgrade.bat file, which uses the right flags
to msiexec to force reinstallation over the old version. But that's not
very user-friendly.

To fix that, we need to use the Windows Installer "major upgrade"
feature. Browsing the web on this subject, most people seem to recommend
treating every upgrade as a major upgrade, because that's the simplest
method. Dealing with Minor or Small upgrades properly would require much
more work, while a major upgrade just removes the old installation and
installs the new one. For a small product like psqlODBC, that works fine.

I'm following the WiX tutorial at
http://wixtoolset.org/documentation/manual/v3/howtos/updates/major_upgrade.html
on how to do that. Fortunately we already include an UpgradeCode and
ProductId.

So all we need to do is to add a MajorUpgrade tag to the .wxs file:

     <MajorUpgrade
    Schedule="afterInstallInitialize"
    DowngradeErrorMessage="A later version of the driver is already
installed. Setup will now exit.">

And whenever we ship a new version, we must update the product code.

Any objections? We'll need to somehow automate the generation of product
codes. I'll try to figure out how to do that with MSBuild.

Once we do that, we should stop shipping upgrade.bat. At the downloads
website, I think we should just provide the plain .msi file, and not zip
it anymore. (the MM and DLL binaries would be unchanged)

- Heikki


pgsql-odbc by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: Non-ASCII DSN name troubles
Next
From: "Jan-Peter Seifert"
Date:
Subject: Re: Crash when using 'Use Declare/Fetch' and the result set does contain one row only