我有一个WiX安装程序项目。根据要求,我必须在运行时从Web服务器下载EULA并在安装时显示它。我们怎么做到呢?
我尝试使用自定义操作,但是没有运气。
答案 0 :(得分:2)
我大约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和控制条件的控件,这样,如果设置了属性,则该控件可见。最后,设置属性以覆盖另一个控件。
但是说实话...我不确定这样做会不会麻烦。首先,有一些方法可以使用HyperLink将EULA从安装程序中分离出来,和/或从安装程序中删除EULA,并让应用程序像Stain建议的那样在首次运行时显示它。
最后,还有一些注意事项,例如静默安装和脱机安装,这些引起了此设计的其他问题。
那是说...如果您真的想做...就是那样做。