从InstallShield InstallScript进行主要升级检测

时间:2019-06-24 22:44:57

标签: windows-installer installshield

我有一个IS 2018 InstallScript MSI项目。我已经在升级视图中进行了更改,并添加了一个升级项目以支持自动重大升级。

问题是,如果安装要进行重大升级,如何在安装脚本中进行检测。

更具体地说,在安装脚本.Rul文件的OnFirstUIBefore函数中,我想知道安装是否将继续进行“重大升级”,并基于此我想执行某些安装任务。 / p>

是否可以检查是否将执行“重大升级”的InstallShield InstallScript属性?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用MsiGetProperty来检索IS_MAJOR_UPGRADE或在主要升级项目中指定的属性。如果您检索的值不为空,则找到相关产品,并且您的安装将替换它。 (假设您未设置主要升级项目的“仅检测”属性。)

请注意,与链接的示例相反,您将需要引用ISMSI_HANDLE而不是hMSI来从OnFirstUIBefore访问Windows Installer句柄,因为事件不会将句柄作为参数接收。

您还可以检查UPGRADINGPRODUCTCODE,但这是针对相关情况的,在该情况下,由于要进行重大升级而替换了当前产品,因此将其删除。