为什么安装WiX会在HKLM \ SOFTWARE \ WOW6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall \中创建两个条目

时间:2019-02-19 23:42:43

标签: wix windows-installer msiexec

我正尝试卸载我们产品的旧版本,该产品是使用WiX内置的安装程序安装的,并且在无提示卸载后:

msiexec /x{GUID}

该程序仍出现在“控制面板”中。我打开了一个separate item 探索这个奥秘,但是又出现了另一个好奇的问题。我注意到运行此程序的安装后,两个条目(GUID)被添加到HKLM \ SOFTWARE \ WOW6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall。一种带有产品GUID,另一种却不知道它来自何处。我已经搜索了.msi,但它不在其中。两者都在每次安装时创建,如果从“控制面板”中卸载,则两者都将被删除;如果从命令行中卸载,则两者都将保留在注册表中。所以看看

enter image description here


enter image description here

任何人都知道这里发生了什么吗?

1 个答案:

答案 0 :(得分:0)

Embedded Setup.exe :本质上,您似乎正在安装MSI,该MSI还会通过以下方式安装嵌入式 non-MSI setup.exe 自定义操作作为其自身安装序列的一部分。或者,有一个 setup.exe 启动器可以按顺序启动MSI和旧设置。结果: Add / Remove Programs 中有两个条目。

卸载 :很明显,但是要摆脱第二个条目,除了要卸载MSI之外,还必须运行其卸载序列。卸载时,非MSI设置的可靠性不如MSI软件包。具有可靠的静默运行的所有MSI软件包的隐式可用卸载是MSI的核心优势之一:MSI Core Benefits(以及其他主题)。

Uninstall Commands:尝试运行无提示卸载字符串,我想这就是您要做的事情?

Run commands elevated! With admin rights!

REM Uninstall MSI
msiexec.exe /x {PRODUCT-GUID} /L*v C:\MySetup.log /QN

REM Uninstall legacy setup.exe
"%SystemDrive%\ProgramData\Package Cache\{c5f0cb3e-1de3-4971-843a-abb981ed670c}\MDRSetup.exe" /uninstall /quiet

静默运行 :要静默运行遗留设置,有时您必须记录一个“响应文件”以记录GUI中的所有设置并传递给卸载过程。我对此有一些先前的答案。 您还需要以管理员权限运行


Application Repackaging:您正在安装的软件的名称是什么? MDRSetup.exe ,是 Max Data Recovery 1.9 吗?可能不会。摆脱旧版软件可能会充满挑战。如果您拥有the tools to do so,或者您公司中有一个团队可以这样做,则总是可以尝试将其重新打包为MSI(所有大型公司都倾向于这样做)。并非所有旧设置都可以重新打包。可能存在无法捕获的构造,例如某些驱动程序,每台计算机生成的唯一密钥等...


链接