我正在安装我软件的所有新版本作为主要升级,因为安装量非常小,而且大多数情况下,无论如何所有文件都会发生变化。
如果与全新安装相比进行了升级,我想跳过安装程序中的一个对话框,但到目前为止,我无法弄清楚以下示例中要使用的条件(如“已安装和补丁”)。
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog"
Value="WelcomeDlg" Order="2">Installed AND PATCH</Publish>
最佳答案
您需要在 WiX 中向我们展示您的主要升级元素或升级元素以获取详细信息,但检测您正在执行升级的方法是使用升级属性名称。有时名称是 PREVIOUSVERSIONSINSTALLED,但如果您使用 MajorUpgrade 元素,它会设置一个名为 WIX_UPGRADE_DETECTED 的属性。
http://wixtoolset.org/documentation/manual/v3/xsd/wix/majorupgrade.html
这意味着您的对话框中的条件将是:
不是 WIX_UPGRADE_DETECTED
如果你想抑制对话框。您不想要 PATCH,因为您根本没有做任何与补丁相关的事情。
关于wix - 在 Wix 3.8 中检测 MajorUpgrade,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24359305/