我在Windows Server 2012的盒子上,有些东西搞砸了。我试图从添加/删除程序工具卸载我的应用程序。当我尝试这样做时,我看到以下错误消息:
所以我继续删除了以下注册表项,Windows帮助管理添加/删除程序工具中所有已安装应用程序的列表:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{C14DB2B2-6089-4C96-A878-77BA377BABBF}]
在这个特定的路径中,我能够在C14DB2B2-6089-4C96-A878-77BA377BABBF
密钥的帮助下找出DisplayName
guid配置单元属于我的产品
此后,我在添加/删除程序工具窗口中停止查看我的应用程序。所以,我以为我已经完成了。
<< 在看到@ Nikolay的回答后更新>>
在这个混乱之后尝试进行全新安装时,有两种方法可以解决我遇到的错误。我正在解释两条路线:
myapplication.msi
文件来安装应用程序时,当我点击欢迎屏幕上的“下一步”按钮时,它会显示在屏幕下方。似乎程序仍然安装:答案 0 :(得分:3)
删除条目Uninstall\{xxxxxxxxx}
并不能真正卸载产品。它类似于从桌面删除程序快捷方式。这并没有真正删除该程序。
尝试在添加/删除控制面板中单击“删除”而不是“修改”按钮。如果只有一个按钮“修改/删除”,那么您可以尝试从命令行中删除该程序,如下所示:
> msiexec /x {C14DB2B2-6089-4C96-A878-77BA377BABBF}
在最糟糕的情况下,如果您通过编辑注册表完全弄乱了系统,可能还有另一种选择: MsiZap.exe tool (已弃用,不支持的和不安全的工具),可以清除指定MSI的所有注册表项。
更新:如果您的应用程序无法卸载,可以尝试新的FixIt tool from Microsoft。
答案 1 :(得分:1)
该错误表示您正在尝试将“相关”软件包安装到当前在计算机上的软件包,而没有对msiexec的相应说明。这个软件包可能是一个小的更新或小的升级(虽然可能不是一个有效的,我会特别怀疑任何以后的卸载问题)。通常,要安装此类更新,您需要指定
msiexec /i myapplication.msi REINSTALL=all REINSTALLMODE=vomus
或者,正如Nikolay所描述的那样,使用msiexec /x {product-code}
正确卸载现有软件包(您在注册表的卸载密钥中看到的guid是您的产品代码)。
如果这不起作用,请将测试VM恢复到干净状态并重新开始。
答案 2 :(得分:0)
@Nikolay的回答帮助我解决了我的问题,这是一个非常干净的方法。但在适当的时候解决了这个问题,我想出了一个注册表项,如果您的机器上的情况更加混乱,可能会有一些帮助。删除此注册表项最初也有助于摆脱此问题。删除此注册表项后,我的新安装程序已开始工作。
此注册表项存在于HKEY_CLASSES_ROOT
中。您必须使用HKEY_CLASSES_ROOT
配置单元上的产品名称启动搜索,以搜索所需的注册表。完整路径如下:
[HKEY_CLASSES_ROOT\Installer\Products\2B2BD41C980669C48A8777AB73B7BAFB]
注意:上述路径中显示的guid不是产品代码,而是在运行安装程序时在产品注册期间生成的随机guid。
我刚刚提到了这个注册表路径,以防万一有人发现它在更糟糕的情况下有用,比如我陷入其中。