Windows installer Electron Squirrel.Windows:。msi不工作

Windows installer Electron Squirrel.Windows:。msi不工作,windows-installer,electron,electron-packager,squirrel.windows,Windows Installer,Electron,Electron Packager,Squirrel.windows,我开发了一个Electron应用程序,使用eletron packager,然后Electron squirrel启动我创建了.exe和.msi安装程序文件。.exe文件工作正常,但.msi工作不正常。它看起来只是在某个点停止并关闭。在控制面板中,我可以看到“我的应用程序机器范围的安装程序”,我不确定这是否是理想的效果,但尽管如此,我的应用程序没有安装 我有一个非常基本的HandleSquirreEvents函数: switch (squirrelEvent) { case '--squ

我开发了一个Electron应用程序,使用
eletron packager
,然后
Electron squirrel启动
我创建了
.exe
.msi
安装程序文件。
.exe
文件工作正常,但
.msi
工作不正常。它看起来只是在某个点停止并关闭。在控制面板中,我可以看到“我的应用程序机器范围的安装程序”,我不确定这是否是理想的效果,但尽管如此,我的应用程序没有安装

我有一个非常基本的HandleSquirreEvents函数:

switch (squirrelEvent) {
    case '--squirrel-install':
    case '--squirrel-updated':
        // Optionally do things such as:
        // - Add your .exe to the PATH
        // - Write to the registry for things like file associations and
        //   explorer context menus

        // Install desktop and start menu shortcuts
        spawnUpdate(['--createShortcut', exeName]);

        setTimeout(application.quit, 1000);
        return true;

    case '--squirrel-uninstall':
        // Undo anything you did in the --squirrel-install and
        // --squirrel-updated handlers

        // Remove desktop and start menu shortcuts
        spawnUpdate(['--removeShortcut', exeName]);

        setTimeout(application.quit, 1000);
        return true;

    case '--squirrel-obsolete':
        // This is called on the outgoing version of your app before
        // we update to the new version - it's the opposite of
        // --squirrel-updated

        application.quit();
        return true;
}

这有点牵强,但可能与数字签名有关

这只是第一个建议,不是真正的答案。我将在获得更多信息后更新:如果您安装了Windows SDK,您可以搜索
Orca-x86_en-us.msi
。安装此MSI,您将可以访问“Orca”-MSI文件查看器。在Orca中打开MSI并通过工具->验证运行验证。单击Go(或者取消选中信息消息的勾选框)。应该有一个快捷方式到奥卡添加到您的开始菜单。请用任何错误消息更新您的答案。

我发现:

它说:

机器范围安装Squirrel的Releasify命令生成MSI 适合通过组策略安装的文件。这个MSI不是一个 通用安装程序,这意味着一旦运行MSI,用户 从现在起,将在下次登录时安装应用程序

因此,大多数普通用户应该继续运行Setup.exe生成的 通过重新简化,但是如果您想要一个IT管理员友好的版本, 你可以把MSI交给我

大多数Squirrel用户不需要做任何新的事情来实现这一点 行为,尽管某些NuGet包ID/名称可能会导致 MSI的问题


看起来我的
.msi
工作得很好,只是我期望得到不同的结果

我们能看到这个微星吗?如果可以的话,我相信我们能弄清楚到底发生了什么。如果它很大,你可以在上面运行一个,然后只上传基本的MSI(没有嵌入式CAB)。这意味着它无法安装,但可以查看。在上面的链接中阅读有关管理员安装的内容,或者尝试运行(在标准命令提示符下-根据需要调整路径):
msiexec/a File.msi TARGETDIR=C:\MyInstallPoint/qn
来创建一个。我没有意识到Squirrel制造的msi。我以为上次我检查它时只做了EXE(每个用户自动更新)@SteinÅsmul谢谢你的回答!我不知道你的意思。我运行了您提到的
cmd
命令,它创建了一个
.exe
文件,效果很好(尽管我仍在试图找出
.msi
的错误)。我不知道你是否希望我上传。FWIW我已经写了一些NW和Electron应用程序,我只是用WiX/IsWiX把它们打包,就像其他桌面应用程序一样。我看不出它们有什么特别之处,它们需要自己的利基包装堆栈。@SteinÅsmul谢谢,我照你说的做了,运行了Orca验证,没有产生任何错误。这是很有用的,因为正因为如此,我想我找到了
.msi
无法按预期工作的原因(有关详细信息,请参阅下面我的答案)。