我正在使用 WiX 3.6 创建一个复制一些 exe 和 dll 的 msi,安装一些 Windows 服务并添加和删除一些注册表项。
WiX 非常出色,使用它在关联的 .net 托管 dll 中的内置功能和自定义操作,我已经能够非常轻松地完成我需要做的一切。
不过,最近开始出现一个烦人的问题。
安装过程没有任何错误,并且完全符合我的预期,但是当我从“程序功能”控制面板或命令行卸载时,产品条目仍保留在“程序功能”列表中。所有其他文件、服务和文件夹都按预期删除,并且卸载完成且未报告任何错误!
如果我再次运行卸载,程序功能条目将被删除!
我使用了安装和卸载的详细日志记录,并通过平台 SDK 中的 Windows Installer 详细日志分析器进行了查看,并且它没有报告任何错误。
我很困惑!
我确定它之前已正确卸载,但我无法确定我做了什么使其开始表现出这种行为。
任何想法,将不胜感激。
PS 我在 Windows 7 64 位机器上运行,并生成一个 32 位安装程序。
PPS 日志太大,无法在此处包含。谁能建议我需要查看哪些条目来控制从“程序功能”列表中删除该条目?
进一步澄清;
我已经检查了下面克里斯托弗回答中的链接,但情况与我的不符。
第一次卸载后,该条目会从“程序功能”列表中消失,但如果刷新或退出控制面板并返回该列表,则会重新出现在列表中。注册表项仍然存在(我已经检查过),所以这就是它仍然出现在列表中的原因。
第二次卸载会从注册表中删除该条目,因此也会从列表中删除。