2010-10-01 38 views
1

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

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

回答

2

如果我们正在谈论重大升级,升级表中定义的ActionProperty在FindRelatedProducts执行后将具有ProductCode。还有由RemoveExistingProducts设置的UPGRADINGPRODUCTCODE。

我知道没有其他内置机制来解决升级产品的ProductVersion。您将必须编写一个自定义操作来根据您的ProductCode/UpgradeCode查询MSI API以获取此信息。

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

+0

是的,我使用重大升级。感谢你的回答,我担心我必须这样做。 – Darqer 2010-10-01 15:15:05

相关问题