我使用Wix和Burn为我的应用程序创建了一个自定义boot-strapper,但是在学习的时候我设法安装了几个早期的变种,它们不会卸载。我想我是在调用PlanComplete之前运行Engine.Apply来创建问题的。
在“添加/删除”程序中构建列表的信息在哪里?手动删除孤立行的最佳方法是什么?
更新 - 我应该说我是64位Windows 7企业版,Service Pack 1。
答案 0 :(得分:33)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
或HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
- 这是添加删除程序的填充位置。如果从注册表中删除该条目,它将取出该条目。您可以如下所述从此处删除密钥,并物理定位和删除文件/文件夹。
在注册表编辑器中,找到上面提到的注册表项。
注册表编辑器左窗格中的“卸载”下列出的每个键表示一个程序,该程序显示在“添加或删除程序”工具的“当前安装的程序”列表中。要确定每个键所代表的程序,请单击该键,然后在右侧的详细信息窗格中查看以下值:
DisplayName: DisplayName键的值数据是“添加或删除程序”中列出的名称。
- 和 -
UninstallString: UninstallString键的值数据是用于卸载程序的程序。
在确定代表已删除但仍显示在“添加或删除程序”的“当前安装的程序”列表中的程序的注册表项后,右键单击“注册表编辑器”窗口左窗格中的项,然后单击“确定”。单击“删除”。
答案 1 :(得分:3)
如果您无法在答案中的任何一个文件夹中找到它,您可以执行Ctrl + F(编辑 - 查找...)并搜索确切的显示名称。我在制作引导程序时遇到了这个问题,在逐行搜索每个提到的文件夹后,我感到非常沮丧,没有意识到有搜索功能。它最终出现在HKEY_USERS中的一个文件夹下,而不是HKEY_LOCAL_MACHINE。
答案 2 :(得分:3)
如果您的卸载过程失败,即使从Isiah4110的答案中删除了密钥,也请检查unescapedValue
。它将解决这个挥之不去的问题:
" SOURCEMGMT:由于丢失/无法访问包裹而导致来源无效"
答案 3 :(得分:-1)
尝试MSIZAP,它总是适合我。
http://msdn.microsoft.com/en-us/library/windows/desktop/aa370523(v=vs.85).aspx
这不仅删除了卸载部分,还删除了所有其他已写入的注册表信息。
但要小心如何执行它,它可能会破坏您的注册表。