【问题标题】:Removing bad installs from Add/Remove programs从添加/删除程序中删除错误安装
【发布时间】:2013-08-09 04:24:42
【问题描述】:

我使用 Wix 和 Burn 为我的应用程序创建了一个自定义引导程序,但在学习过程中,我设法安装了几个早期的变体,使它们不会被卸载。我想我是在调用 PlanComplete 之前运行 Engine.Apply 造成的。

在添加/删除程序中构建列表的信息在哪里?手动删除孤立行的最佳方法是什么?

更新 - 我应该说我使用的是 64 位 Windows 7 Enterprise Service Pack 1。

【问题讨论】:

    标签: windows-7 installation windows-installer windows-7-x64 uninstallation


    【解决方案1】:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\UninstallHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninst‌​all- 这是添加删除程序被填充的位置。如果您从注册表中删除该条目,它将删除该条目。您可以从此处删除密钥,如下所述,还可以物理定位并删除文件/文件夹。

    在注册表编辑器中,找到上述注册表项。

    注册表编辑器左窗格中卸载下列出的每个键都代表一个程序,该程序显示在添加或删除程序工具的当前安装的程序列表中。要确定每个键代表哪个程序,请单击该键,然后单击在右侧的详细信息窗格中查看以下值:

    DisplayName: DisplayName 键的值数据是添加或删除程序中列出的名称。

    -和-

    UninstallString: UninstallString 键的值数据是用于卸载程序的程序。

    确定代表已删除但仍显示在“添加或删除程序”的“当前安装的程序”列表中的程序的注册表项后,右键单击注册表编辑器窗口左窗格中的项,然后点击删除。

    Microsoft Link

    【讨论】:

    • 虽然看起来不错,但它不包含我的安装,也不包含我的添加/删除程序中的所有其他安装。例如,Orca 不存在,WiX 工具集也不存在。我应该说我使用的是 Windows 7 Enterprise Service Pack 1。
    • @TomDestry 你是否也检查过HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
    • 我的添加/删除程序现在是原始的。谢谢你们。
    • 只是出于好奇,您为什么安装所有这些应用程序的 32 位版本而不是 64 位版本? :}
    • 因为有些键是不可读的 UUID,你可能需要搜索一些东西。出现在“添加或删除程序”页面中的名称或发布者都可以正常工作。希望其中之一至少有点独特。
    【解决方案2】:

    如果在答案中的任何一个文件夹中都找不到它,您可以执行 Ctrl+F(编辑 - 查找...)并搜索确切的显示名称。我在制作引导程序时遇到了这个问题,在逐行搜索每个提到的文件夹后我非常沮丧,没有意识到有搜索功能。它最终位于 HKEY_USERS 中的一个文件夹下,而不是我的 HKEY_LOCAL_MACHINE。

    【讨论】:

      【解决方案3】:

      如果您的卸载过程失败,即使从 Isiah4110 的答案中删除了密钥,也请检查 HKLM\software\classes\installer\products。它将解决这个挥之不去的问题:

      “SOURCEMGMT:由于缺少/无法访问包,源无效”

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-13
        • 1970-01-01
        • 1970-01-01
        • 2016-02-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多