Self updating application install with WIX?

2019-03-09 14:06发布

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?

3条回答
三岁会撩人
2楼-- · 2019-03-09 14:20

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.

查看更多
三岁会撩人
3楼-- · 2019-03-09 14:21

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 :-)

Marc

查看更多
Viruses.
4楼-- · 2019-03-09 14:22

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.

查看更多
登录 后发表回答