【问题标题】:Why would a WiX installation create two entries in HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\为什么 WiX 安装会在 HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\ 中创建两个条目
【发布时间】:2019-02-19 23:42:43
【问题描述】:

我正在尝试卸载使用 WiX 内置安装程序安装的旧版本产品,并且在静默卸载后:

msiexec /x{GUID}

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


有人知道这里发生了什么吗?

【问题讨论】:

    标签: wix windows-installer


    【解决方案1】:

    Embedded Setup.exe:本质上,您正在安装一个 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,或者您的公司中有一个团队可以这样做(所有大公司都倾向于这样做)。并非所有旧版设置都可以重新打包。可能存在无法捕获的构造,例如某些驱动程序、每台机器生成的唯一密钥等...


    链接

    【讨论】:

    • Stein - 我不知道是什么创建了第二个安装程序,因为我已经完成了 WiX 代码并且没有引用任何其他 setup.exe 或 .msi 包,但 C:\ProgramData\ Package Cache\{c5f0cb3e-1de3-4971-843a-abb981ed670c}\mdrsetup.exe /uninstall /quiet 解决了这两个问题(这个和stackoverflow.com/questions/54697934/…),非常感谢您的帮助!
    • 这是一个 MSI 文件吗?您在Binary table 中看到了什么?安装 WiX 后,您可以使用 dark.exe 二进制文件反编译 MSI 以查看其中包含的内容,并指定提取二进制文件:dark.exe YourSetup.msi /x Bins => 在文件夹根目录中创建一个包含提取二进制文件和 WXS WiX 源文件的 Bin 文件夹等级制度。或者也许 MSI 也包含在 setup.exe 中?也许只是缺少管理员权限导致它崩溃?
    • WiX Burn Setup.exe 包也可以被反编译。 See section 4 in this answer.
    猜你喜欢
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多