【发布时间】:2018-10-29 12:00:51
【问题描述】:
我使用 WiX 创建和构建我的 Windows 应用 MSI 安装程序。我的 Product.wxs 文件具有以下结构来自定义安装程序,包括自定义 EULA 的显示:
<WixVariable Id="WixUIBannerBmp" Value="MyBanner.bmp" />
<WixVariable Id="WixUIDialogBmp" Value="MyDialog.bmp" />
<WixVariable Id="WixUIInfoIco" Value="MyIcon.ico" />
<WixVariable Id="WixUILicenseRtf" Value="MyEULA.rtf" />
它使用“InstallDir”内置 WiX UI 对话框集:
<UI>
<UIRef Id="WixUI_InstallDir" />
</UI>
这一切都适用于全新安装。
当我向我的应用程序发布升级时,迄今为止,我一直在使用以下命令在没有 UI 的情况下执行它作为升级过程的一部分:
msiexec /i MyInstaller.msi REINSTALL=ALL REINSTALLMODE=vemus /passive
我现在想更改我的 EULA,并且在下一次 [次要] 升级时,要求用户再次同意 EULA。我该怎么做?
(我从上面的命令中删除了/passive 开关,更新程序 MSI 现在有一个 UI,但它不显示 EULA 协议 UI - 它只在全新安装时显示。)
【问题讨论】:
-
我建议您让您的应用程序在首次启动时显示 EULA,而不是在设置中弄乱它。这也产生了更多的控制。当心在其他对话框下方显示您的对话框 - 可能会导致可怕的支持电话。
-
是的,那是我的备份解决方案。但我想通了 - 请参阅答案。
标签: wix windows-installer