如何在卸载时检索MSI属性的值?

时间:2012-05-16 09:34:28

标签: windows-installer installshield installshield-2009

我有一个应用程序的安装程序,我在其中使用了一些习惯。 在安装时,我一直在使用一些自定义MSI属性,如 DBHOST等确定数据库主机。

此默认值为localhost。

但是我在安装时通过命令行设置了这个DBHOST属性和其他一些值(如192.168.1.3)。并且安装与通过命令行设置的属性一起正常工作。

但是当我使用

    MsiGetProperty

在卸载时必须执行的保管中起作用,我得到了默认值(localhost),而不是我在安装时通过命令行设置的值(192.168.1.3)

任何人都可以帮助我吗?为什么会这样。 是否需要在卸载时为MSI属性获取相同的值?

提前致谢...

2 个答案:

答案 0 :(得分:5)

属性值不是持久的,这意味着在卸载时它不会记住它在安装过程中的最后一个值,它将使用默认值。最好和更简单的解决方案是将此值写入注册表项,并在卸载期间使用注册表搜索检索它。

答案 1 :(得分:0)

由于您提到了DBHOST,如果您使用InstallShield的本机SQL脚本功能,他们会在其基础结构中预先设置自定义操作,以保留SQL连接所需的属性,以便在维修,次要升级和卸载期间使用。

默认属性名称为IS_SQLSERVER_SERVER。

BTW,DBHOST非常无辜,但是实现一些持久性数据(例如IS_SQLSERVER_USERNAME和IS_SQLSERVER_PASSWORD)是敏感的,需要加密,解密。 InstallShield会自动执行此操作。安全性是否足以满足您的需求需要您进行审核。

相关问题