如何在安装过程中从MSI处理程序获取属性,并将其传递给卸载功能



在基本的MSI项目中,我在安装设计表中添加了一个属性"id",设置其默认值为50,当我安装服务时,我为这个属性设置了一个新值48,并使用MsiGetProperty(hMSI, "id", id, nvSize)来获得新值,它工作得很好。但是当我卸载服务时,再次使用MsiGetProperty(hMSI,"id",id, nvSize),我只得到默认值50而不是新值48,为什么?

如何在卸载过程中获得新值?

因为在安装期间,您只能为此安装实例修改此属性。这意味着,当您启动卸载-属性将具有默认(初始)值。
解决这个问题的一种方法-创建注册表项,实际值为id(例如HKLMSoftwareMySoftwareid=48),卸载时只需在SystemSearch的帮助下读取属性id

最新更新