【问题标题】:How to download EULA and show it at runtime in WiX installer?如何下载 EULA 并在运行时在 WiX 安装程序中显示它?
【发布时间】:2019-06-25 10:25:53
【问题描述】:

我有一个 WiX 安装程序项目。根据要求,我必须在运行时从 Web 服务器下载 EULA 并在安装时显示它。我们怎样才能做到这一点?
我尝试使用自定义操作,但没有运气。

【问题讨论】:

  • 您可以更改应用程序以在启动时执行此操作吗?可能带有指向包含最新版本的 URL 的链接? (避免因防火墙问题导致下载失败)

标签: wix windows-installer


【解决方案1】:

我在大约 11 年前写了一篇博客文章,描述了这一点:

http://blog.iswix.com/2008/07/dynamic-windows-installer-ui.html

基本上 MSI 有这里讨论的临时数据的概念。

https://docs.microsoft.com/en-us/windows/desktop/msi/sql-syntax

我没有对此进行测试,但似乎 UPDATE 不支持 TEMPORARY 但 INSERT INTO 支持。

概念是您构建您的 MSI 并将模板 RTF 放置在 ScrollableText 控件中。定义控件条件,以便在设置属性时控件不可见。

然后在 WelcomeDlg 之前安排的自定义操作中,您从 Web 服务下载替换 RTF,并使用替换 RTF 和控制条件在对话框上动态定义控件,以便在设置属性时控件可见。最后设置属性以用另一个控件覆盖一个控件。

但老实说……我不确定我是否会费心去做这件事。首先,有一些方法可以使用超链接从安装程序中移除 EULA 和/或从安装程序中删除 EULA,并让应用程序在第一次运行时显示它,就像 Stain 建议的那样。

最后还有一些考虑因素,例如静默安装和离线安装,这会引起与此设计的其他问题。

也就是说……如果你真的想这样做……那就是这样做的。

【讨论】:

  • 我喜欢让应用程序显示 EULA,但我忘了提到您可能需要一个“始终在顶部”对话框,或者一些更好的方法来确保用户真正正确可靠地看到 EULA -不会过多地打扰它们(每个用户只显示一次,并且没有令人困惑的复选框和选项)。典型的灾难是在 EULA 被接受之前无法使用的应用程序,EULA 有时会出现在主窗口下方。大量支持台努力处理它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-03
  • 1970-01-01
  • 2015-10-22
  • 2018-09-22
  • 1970-01-01
  • 2018-06-17
相关资源
最近更新 更多