Installation 如何清理损坏或丢失的安装(在添加/删除程序中不可见):此产品的另一个版本已安装错误

Installation 如何清理损坏或丢失的安装(在添加/删除程序中不可见):此产品的另一个版本已安装错误,installation,windows-installer,installshield,installshield-2016,Installation,Windows Installer,Installshield,Installshield 2016,我在一个WindowsServer2012盒子上,有些东西搞砸了。我试图从添加/删除程序工具卸载我的应用程序。当我尝试这样做时,我看到以下错误消息: 因此,我继续删除了以下注册表项,Windows通过这些注册表项在“添加/删除程序”工具中管理所有已安装应用程序的列表: [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{C14DB2B2-6089-4C96-A878-77BA3

我在一个WindowsServer2012盒子上,有些东西搞砸了。我试图从添加/删除程序工具卸载我的应用程序。当我尝试这样做时,我看到以下错误消息:

因此,我继续删除了以下注册表项,Windows通过这些注册表项在“添加/删除程序”工具中管理所有已安装应用程序的列表:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{C14DB2B2-6089-4C96-A878-77BA377BABBF}]
在这个特定的路径中,我能够通过
DisplayName
键来确定
C14DB2B2-6089-4C96-A878-77BA377BABBF
guid配置单元属于我的产品

此后,我不再在“添加/删除程序”工具窗口中看到我的应用程序。所以,我想我完了


删除条目
Uninstall\{xxxxxxxxx}
并不真正卸载产品。这类似于从桌面删除程序快捷方式。这并不能真正删除该程序

尝试单击“添加/删除”控制面板中的“删除”而不是“修改”按钮。如果只有一个按钮“Modify/Remove”,则可以尝试从命令行中删除该程序,如下所示:

>msiexec/x{C14DB2B2-6089-4C96-A878-77BA377BABBF}

在最坏的情况下,如果您通过编辑注册表将系统完全弄糟,则可能会有另一个选项:(已弃用的不支持的不安全的要使用的工具),可以清除指定MSI的所有注册表项


更新:如果您有无法卸载的应用程序,可以尝试一个新的应用程序。

删除条目
uninstall\{xxxxxxxxx}
不会真正卸载产品。这类似于从桌面删除程序快捷方式。这并不能真正删除该程序

尝试单击“添加/删除”控制面板中的“删除”而不是“修改”按钮。如果只有一个按钮“Modify/Remove”,则可以尝试从命令行中删除该程序,如下所示:

>msiexec/x{C14DB2B2-6089-4C96-A878-77BA377BABBF}

在最坏的情况下,如果您通过编辑注册表将系统完全弄糟,则可能会有另一个选项:(已弃用的不支持的不安全的要使用的工具),可以清除指定MSI的所有注册表项


更新:如果您有无法卸载的应用程序,可以尝试一个新的程序包。

该错误表示您正在尝试安装一个与当前计算机上的程序包“相关”的程序包,但没有向msiexec提供相应的说明。这个软件包可能是一个小的更新或小的升级(虽然可能不是一个有效的,我会特别怀疑以后卸载的问题)。通常,要安装这样的更新,您需要指定

msiexec /i myapplication.msi REINSTALL=all REINSTALLMODE=vomus
或者,如Nikolay所述,使用
msiexec/x{product code}
正确卸载现有软件包(您在注册表的卸载项中看到的guid是您的产品代码)


如果这不起作用,请将测试VM恢复为干净状态并重新开始。

该错误表示您正在尝试安装一个与当前计算机上的程序包“相关”的程序包,但没有向msiexec提供相应的说明。这个软件包可能是一个小的更新或小的升级(虽然可能不是一个有效的,我会特别怀疑以后卸载的问题)。通常,要安装这样的更新,您需要指定

msiexec /i myapplication.msi REINSTALL=all REINSTALLMODE=vomus
或者,如Nikolay所述,使用
msiexec/x{product code}
正确卸载现有软件包(您在注册表的卸载项中看到的guid是您的产品代码)


如果这不起作用,请将测试虚拟机恢复到干净的状态,然后重新开始。

@Nikolay的回答帮助我解决了我的问题,这是一种非常干净的方法。但在解决这个问题的适当时候,我找到了一个注册表项,它可能会在您的机器上的情况更混乱时有所帮助。删除此注册表项最初也有助于解决此问题。删除此注册表项后,我的新安装程序开始工作

此注册表项存在于
HKEY\U CLASSES\U ROOT
中。您必须在
HKEY_CLASSES_ROOT
hive上使用您的产品名称启动搜索,以搜索所需的注册表。完整路径如下所示:

[HKEY_CLASSES_ROOT\Installer\Products\2B2BD41C980669C48A8777AB73B7BAFB]
注意:上面路径中显示的guid不是产品代码,而是运行安装程序时在产品注册期间生成的随机guid


我刚才提到了这个注册表路径,以防有人发现它在我遇到的更混乱的情况下有用。

@Nikolay的回答帮助我解决了我的问题,这是一个非常干净的方法。但在解决这个问题的适当时候,我找到了一个注册表项,它可能会在您的机器上的情况更混乱时有所帮助。删除此注册表项最初也有助于解决此问题。删除此注册表项后,我的新安装程序开始工作

此注册表项存在于
HKEY\U CLASSES\U ROOT
中。您必须在
HKEY_CLASSES_ROOT
hive上使用您的产品名称启动搜索,以搜索所需的注册表。完整路径如下所示:

[HKEY_CLASSES_ROOT\Installer\Products\2B2BD41C980669C48A8777AB73B7BAFB]
注意:上面路径中显示的guid不是产品代码,而是运行安装程序时在产品注册期间生成的随机guid


我刚才提到了这个注册表路径,以防有人发现它在我遇到的更混乱的情况下有用处。

安装程序已经写入了它自己的文件夹(目录),其中有应用程序可执行文件。尝试找出此文件夹的位置(可能来自项目方案)。如果安装程序在路径中找到相同的exec,它将抛出该错误。不