如何在卸载时读取 属性 的值?

How to read value of property at uninstallation?

我已经在 InstallShield 中创建了一个基本的 MSI 项目。我想实现一种情况。为此,我在安装时使用 installScript 函数 MsiSetProperty() 设置了一个 属性。但我还想在卸载时读取相同 属性 的值。我需要卸载时属性的值,这个值是安装时设置的。

那么有什么方法可以在卸载时检索 属性 的值,它是在安装时设置的?

卸载时读取 属性 与安装时读取相同:调用 MsiGetProperty(),如果它在延迟上下文中,则必须通过 CustomActionData 传递它属性。另请注意,在延迟上下文期间设置 属性 并没有多大作用。

然而,可能让您感到困惑的是,属性通常不会在 Windows 安装程序会话中保留。有一些例外,例如已安装组件的 DirProperties,它们会自动保留。但是当当前操作结束时,大多数属性都会被遗忘。典型的建议是遵循 'remember property pattern',简而言之,它包括将 属性 的值保存到注册表项,然后通过系统搜索将其读回。

我刚刚尝试了一个解决方法。我在安装时设置注册表值并在卸载时读取 属性 并将其值设置为 属性.