我标记了一个组件,它用Permanent="yes"属性写入注册表项。后来我删除了这个属性,但是组件仍然认为它是永久性的。卸载日志显示:
Disallowing uninstallation of component: {XXXXXXXX-3955-519D-AC73-F6832147D388} since another client exists在Windows注册表中搜索该GUID不会给出结果。如何清理"Windows安装程序内存“?
Permanent属性的文档显示
The installer registers an extra system client for the component in the Windows Installer registry settings (which basically just means that at least one product is always referencing this component)但是在哪里可以找到和卸载这个“额外的系统客户端”呢?
发布于 2014-06-16 11:55:09
AFAIK只能通过直接删除注册表中的条目来“取消安装”。您将能够在HKEY_CLASSES_ROOT\Installer\Components下找到组件。组件密钥名是guid重新打包。根据这里,可以通过以下规则计算出打包的GUID:
通过对标准GUID进行变换,可以得到填充的GUID。此转换执行以下操作:
记住先进行reg备份,以防万一,并在尝试安装非永久性包之前将已安装的文件移开。
另一种选择是给组件一个新的guid,只保留旧的guid。
https://stackoverflow.com/questions/24242004
复制相似问题