如何在InstallShield中更新期间获取以前安装的ProductVersion

时间:2010-10-01 13:45:53

标签: installshield

我在InstallShield中有BasicMsi项目。我希望能够更新这个应用程序但是我找不到返回已经安装的ProductVersion数量的InstallShield变量,我知道我可以通过使用升级节点和定义规则集来手动锻炼这个版本但是我现在正在搜索最简单的解决方案。我想在代码中使用此版本号,以便提供一些基于此值的工具。

我希望能够升级到当前版本,不仅可以从之前的版本(例如3.0.2)升级到早期版本(2.1.0,1.0.0等)。

1 个答案:

答案 0 :(得分:2)

如果我们正在讨论主要升级,那么在升级表中定义的ActionProperty将在FindRelatedProducts执行后生成ProductCode。还有由RemoveExistingProducts设置的UPGRADINGPRODUCTCODE。

我知道没有其他内置机制可以解析正在升级的产品的ProductVersion。您必须编写自定义操作以基于ProductCode / UpgradeCode查询MSI API以获取此信息。

另一种方法是在第一次安装期间写入一个注册表值(或者甚至使用已经存储在“添加/删除程序卸载”键中的内容),然后使用AppSearch / Reglocator组合将其提取到属性中。