使用 Electron Build 捆绑 MSI 安装程序

Bundling MSI installers using Electron Build

我目前正在使用 Electron Builder 来分发我们内部使用的桌面应用程序。为了让它工作,我需要在我要安装此应用程序的 Windows 系统上安装 ImageMagick 和 Ghostscript。我想通过以某种方式在后台安装这些程序来实现无缝安装(或者至少我希望它们的 MSI 安装程序在安装过程中弹出)。

目前可行吗?

运行 命令 electron-builder -p always --win 它将在 dist 目录中生成名为 AppName Setup version.exe 的独立 windows 安装程序。作为支持您的问题,您可以创建一个 zip 文件并将其托管在某个地方。您还可以使用 GitHub 存储库来托管包含所需安装程序的 zip 文件。首次打开应用程序时,下载该 zip 文件,在后台解压缩,然后您可以在节点中使用 process. execFile 执行它。这是如何做到的,

var exec = require('child_process').execFile;

var fun =function(){
   console.log("fun() start");
   exec('imagic.exe', function(err, data) {  
        console.log(err)
        console.log(data.toString());                       
    });  
}
fun();

如果您正在寻找此类文件的运行时安装,您必须将其打包并与电子应用程序一起发送。要使用 Electron 应用程序传送静态资产文件,您可以阅读 post here,它将帮助您使用应用程序提供静态资产。

无法找到在安装过程中触发自定义脚本的方法,所以我最终将依赖项的可执行文件捆绑为资产。使用 Asar 时必须小心确保这些依赖项已解压。

要以可移植格式获取本机依赖项,​​可以使用 MacOS 上的 The Unarchiver 来探索 MSI 和 NSIS 安装程序的内容。 7-Zip 15.05 也可以打开这些。