【问题标题】:Self updating application install with WIX?使用 WIX 安装自我更新应用程序?
【发布时间】:2010-10-22 08:21:06
【问题描述】:

我正在编写一个需要安装在大量桌面上的应用程序,并且还需要自行更新。我们正在寻找用于创建安装的 WIX。我使用了 ClickOnce,它不是这个安装的好解决方案。 WIX 似乎很合适,但我发现没有很好的自动更新流程。

我看过ClickThrough,但它似乎还没有准备好迎接黄金时段。有没有人有另一个很好的解决方案来使用 WIX(或者可能是另一个安装程序)来自动更新应用程序安装?

【问题讨论】:

  • 嘿,你最终用了什么工具来做这个?你能给我推荐一些指南吗?
  • 我用过 WIX,但那是很久以前的事了。抱歉,我不记得任何指南,但在 windows 世界中已经不记得了。

标签: .net installation wix bootstrapping


【解决方案1】:

是的,ClickThrough 确实是您在此处寻找的内容。里面有一些零碎的东西。您也许可以剖析代码并自己使用它,而无需所有额外的“UI + 构建集成”。大多数错误都在更高级别。在根目录下,RSS 更新和可执行引导程序工作正常。

【讨论】:

  • 好的,我会试一试,看看效果如何……我刚刚读到它仍然需要工作才能准备好。如果我能从中找出主要部分,那可能会奏效。
  • 是否有任何演练、演示或文档?它接缝“ClickThrough”意味着许多其他东西不断被拉出,所以我根本找不到任何关于如何使用 RSS 和 boostrapper 的信息。
  • 这个答案在这一点上似乎已经过时了。根据下面的链接,ClickThrough 已经消失并且不会以相同的形式返回。 wixtoolset.org/issues/1412不知道有没有替代品...
【解决方案2】:

它必须是怎样的“自动”更新? :-)

对于需要反复安装的应用,我们使用 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>

应该这样做!

除此之外 - 没什么好说的 - 它只是工作:-)

【讨论】:

  • 感谢您的回复...我正在寻找可以通过网络自动获取和安装更新的东西。
  • 对于 3.11 版的 WiX,您需要向 UpgradeVersion 标签添加两个属性。 &lt;UpgradeVersion MigrateFeatures="yes" RemoveFeatures="ALL" Minimum="0.0.0.0" Property="OLDERVERSIONBEINGUPGRADED" /&gt;
【解决方案3】:

Windows Installer 并不是真正为“自我更新”软件而设计的。如果您不需要 MSI,或者真的需要应用程序“拉”它自己的更新,那么使用NSIS 或其他工具并编写您自己的更新例程/服务。

但是,如果要在单个组织内的大量桌面上安装此软件,则更好的解决方案是通过 Active Directory 部署 MSI。然后,您可以使用组策略“推出”更新。这将比任何自我更新的应用程序更强大。

【讨论】:

  • Active Directory 对我来说并不是一个真正的选择。我会阅读 NSIS,看看它是否符合我的需要。谢谢你的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-13
  • 2021-07-03
  • 1970-01-01
相关资源
最近更新 更多