【问题标题】:How to go from .msi installer to electron-builder (nsis)如何从 .msi 安装程序到 electron-builder (nsis)
【发布时间】:2019-07-26 08:31:46
【问题描述】:

我目前有一个作为 .msi 安装程序分发的应用程序(使用 Wix 构建)。我刚刚将此应用程序移植到 Electron 以利用所有最新和最强大的功能,包括使用 Electron Builder 和自动更新。

任何 wix/msi 专家都知道卸载旧 msi 并运行新安装程序的最佳方法吗?我找到的解决方案包括搜索 Windows 注册表以找到 msi UUID,然后使用 msiexec。

是否可以只创建一个新版本的 .msi 来清理所有内容?

【问题讨论】:

    标签: windows wix windows-installer electron electron-builder


    【解决方案1】:

    如果我理解正确,您想从 MSI 迁移到 NSIS 格式? 这里有一篇文章: https://nsis.sourceforge.io/Uninstalling_a_previous_MSI.


    不过,我建议您找到 MSI 的产品代码,并使用产品代码和您自己的卸载字符串(不是那个)调用 msiexec.exe从注册表中获取,如上述文档所示)。这样,您可以添加一些结构来防止自发重启强制执行正确的静默运行。这种方法如下所述。


    卸载 MSI:您可以通过多种方式运行卸载命令来卸载以前的 MSI 版本:Uninstalling an MSI file from the command line without using msiexec

    查找产品代码:您可以找到 MSI 的产品 G​​UID,如下所示:How can I find the product GUID of an installed MSI setup?

    命令行:结合上面第一个链接中的方法3.5和使用第二个链接中的信息找到的产品代码,您可以使用这样的命令行来调用从你的 NSIS 安装程序:

    msiexec.exe /x {11111111-1111-1111-1111-11111111111X} /QN /L*V "C:\msilog.log" REBOOT=ReallySuppress
    

    快速参数说明

    /X = run uninstall sequence
    {11111111-1111-1111-1111-11111111111X} = product guid of app to uninstall
    /QN = run completely silently
    /L*V "C:\msilog.log"= verbose logging at path specified
    REBOOT=ReallySuppress = prevent unexpected reboot of computer
    

    ExecWait:NSIS 需要自己特殊的命令格式:Running MSIEXEC in a NSIS script with installer switches。尚未对此进行测试,但建议:

    StrCpy $R0 "{11111111-1111-1111-1111-11111111111X}";  the MSI's ProductID of my package
    ExecWait '"msiexec.exe" /x $R0 /QN REBOOT=ReallySuppress'
    

    查看此处以微调命令行:https://nsis.sourceforge.io/Uninstalling_a_previous_MSI


    链接

    【讨论】:

    • 太棒了。谢谢你。你发现的信息比我能找到的多得多。
    • 效果很好,您是否需要对 ExecWait 进行任何调整?如果是这样,我将更新答案“内联”。为“信息过载”道歉 - 它总是在试图使答案“可重复使用”时发生。
    • ExecWait 命令运行良好。我最终使用Exec 来完成安装,而无需等待旧应用程序被卸载。再次感谢,这是一个完美的答案。
    猜你喜欢
    • 2016-07-23
    • 2020-03-26
    • 2020-05-26
    • 2020-03-08
    • 2018-08-22
    • 1970-01-01
    • 2018-02-09
    • 2017-01-29
    • 2020-01-22
    相关资源
    最近更新 更多