Question

I am writing an application that needs to be installed on a large number of desktops and also needs to update itself. We are looking at WIX for creating the installation. I have used ClickOnce and it is not a good solution for this install. WIX seems to fit, but there is no good process for auto update that I have found.

I have looked at ClickThrough, but it doesn't seem ready for prime time yet. Does anyone have another good solution to use with WIX (or maybe another install program) to auto update an application install?

Was it helpful?

Solution

Yeah, ClickThrough really is what you're looking for here. There are bits and pieces in it that work. You might be able to dissect the code and use it yourself without all the extra "UI + build integration". Most of the bugs are in the higher levels. At the root, the RSS update and executable bootstrapper work fine.

OTHER TIPS

Just how "auto"-update does it have to be? :-)

We use WiX (2.0) for an app that needs to be installed over and over again. As long as you go with "major upgrades" from version to version, that works just fine - you can uninstall the old version and then re-install the new one - no major problems here.

The key is to have a stable "UpgradeCode" (a GUID in your WiX) that never changes - it's the key for your app - and to have a new ProductCode for every release.

Then, in your wxs file, you need two bits:

<Upgrade Id='--your-updatecode-GUID-here--'>
    <UpgradeVersion MigrateFeatures='yes' RemoveFeatures='ALL' />
</Upgrade>

<InstallExecuteSequence>
  <RemoveExistingProducts After='InstallInitialize' />
</InstallExecuteSequence>

That should do it!

Other than that - nothing really much to say - it just works :-)

Windows Installer isn't really designed for "self updating" software. If you don't need MSI, or really need the application to "pull" it's own updates then use NSIS or some other tool and write your own updating routine/service.

However if this is being installed on a large number of desktops within a single organisation, then the better solution would be to deploy an MSI via Active Directory. You can then "push" out updates using Group Policy. This is going to be much more robust than any application that updates itself.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top