首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WiX:将永久组件还原为非永久状态

WiX:将永久组件还原为非永久状态
EN

Stack Overflow用户
提问于 2014-06-16 10:50:50
回答 1查看 1.5K关注 0票数 4

我标记了一个组件,它用Permanent="yes"属性写入注册表项。后来我删除了这个属性,但是组件仍然认为它是永久性的。卸载日志显示:

代码语言:javascript
复制
Disallowing uninstallation of component: {XXXXXXXX-3955-519D-AC73-F6832147D388} since another client exists

在Windows注册表中搜索该GUID不会给出结果。如何清理"Windows安装程序内存“?

Permanent属性的文档显示

代码语言:javascript
复制
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)

但是在哪里可以找到和卸载这个“额外的系统客户端”呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-16 11:55:09

AFAIK只能通过直接删除注册表中的条目来“取消安装”。您将能够在HKEY_CLASSES_ROOT\Installer\Components下找到组件。组件密钥名是guid重新打包。根据这里,可以通过以下规则计算出打包的GUID:

通过对标准GUID进行变换,可以得到填充的GUID。此转换执行以下操作:

  • 移除花括号,并从标准GUID中分离破折号。
  • 用标准GUID以反向顺序写入前三组十六进制字符。
  • 在标准GUID中切换第四组和第五组中的每两个字符一次。

记住先进行reg备份,以防万一,并在尝试安装非永久性包之前将已安装的文件移开。

另一种选择是给组件一个新的guid,只保留旧的guid。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24242004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档