WIX4 Bundle安装后未显示在「程序和功能」中的问题
WIX4 Bundle安装后从「程序和功能」消失的排查方案
- 检查Bundle的
Persistent属性:WIX4中Bundle的Persistent默认行为与WIX3存在差异,若该属性设为yes,会导致Bundle安装完成后不保留卸载条目。显式在Bundle节点设置<Bundle ... Persistent="no">,强制让系统保留其「程序和功能」条目。 - 验证
Cache属性配置:若Cache设为no,WIX4可能不会留存Bundle的安装缓存,进而触发卸载条目的自动清理。确保配置<Bundle ... Cache="yes">,保留安装缓存是维持ARP(添加/删除程序)条目的必要条件之一。 - 排查自定义引导程序应用(BA)逻辑:如果使用了自定义BA,需检查代码中是否存在调用
RemoveBundle接口、或主动删除ARP注册表项的逻辑。这类自定义操作可能会覆盖WIX4默认的条目保留行为。 - 分析安装日志定位问题:运行安装包时添加日志参数:
yourbundle.exe /l*v install.log,打开日志文件搜索ARP、Uninstall、Registry相关关键词,查看是否有异常的注册表条目删除记录,以此定位问题根源。 - 确认Bundle的固定GUID:确保Bundle的
Id属性设置为固定GUID(而非自动生成),自动生成的GUID会导致每次构建的Bundle注册路径不一致。配置<Bundle Id="固定GUID值" ...>后重新安装,再到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\固定GUID值路径下检查注册表项是否存在。
内容的提问来源于stack exchange,提问作者Christoph W.
相关产品推荐
相关产品推荐

