我正在编写一个应用程序,需要安装在大量桌面上,并且还需要自我更新。我们正在寻找 WIX 来创建安装。我使用过 ClickOnce,对于此安装来说它不是一个好的解决方案。 WIX似乎适合,但我没有找到好的自动更新流程。
我看过ClickThrough,但它似乎还没有准备好迎接黄金时段。有没有人有另一个好的解决方案与 WIX(或者可能是另一个安装程序)一起使用来自动更新应用程序安装?
2023 年 8 月 18 日更新:
ClickThrough 不再是 WiX 工具集的一部分。它的功能已集成到 Burn 引擎中可用的更新源功能中,但此答案的其余部分在 WiX 工具集中不再相关。
原评论:
是的,ClickThrough 确实就是您在这里寻找的。其中有一些有用的东西。您也许可以剖析代码并自己使用它,而无需所有额外的“UI + 构建集成”。大多数错误都位于较高级别。从根本上来说,RSS 更新和可执行引导程序工作正常。
它必须有多“自动”更新? :-)
我们将 WiX (2.0) 用于需要反复安装的应用程序。只要您从一个版本到另一个版本进行“重大升级”,就可以正常工作 - 您可以卸载旧版本,然后重新安装新版本 - 这里没有重大问题。
关键是要有一个稳定的、永不改变的“UpgradeCode”(WiX 中的 GUID)——它是你的应用程序的关键——并且为每个版本都有一个新的 ProductCode。
然后,在您的 wxs 文件中,您需要两位:
<Upgrade Id='--your-updatecode-GUID-here--'>
<UpgradeVersion MigrateFeatures='yes' RemoveFeatures='ALL' />
</Upgrade>
<InstallExecuteSequence>
<RemoveExistingProducts After='InstallInitialize' />
</InstallExecuteSequence>
应该可以了!
除此之外 - 没什么可说的 - 它只是有效:-)
Windows Installer 并不是真正为“自我更新”软件设计的。如果您不需要 MSI,或者确实需要应用程序“拉取”它自己的更新,则使用 NSIS 或其他一些工具并编写您自己的更新例程/服务。
但是,如果将其安装在单个组织内的大量桌面上,那么更好的解决方案是通过 Active Directory 部署 MSI。然后,您可以使用组策略“推送”更新。这将比任何自我更新的应用程序都要强大得多。