【问题标题】:Bundling MSI installers using Electron Build使用 Electron Build 捆绑 MSI 安装程序
【发布时间】:2020-01-22 09:52:33
【问题描述】:
我目前正在使用 Electron Builder 分发我们在内部使用的桌面应用程序。为了让它工作,我需要在我要安装这个应用程序的 Windows 系统上安装 ImageMagick 和 Ghostscript。我想通过以某种方式在后台安装这些程序来使安装无缝(或者至少我希望他们的 MSI 安装程序在安装过程中弹出)。
目前可行吗?
【问题讨论】:
标签:
javascript
node.js
electron
desktop-application
electron-builder
【解决方案1】:
运行命令electron-builder -p always --win,它将在dist目录中生成名为AppName Setup version.exe的独立Windows安装程序。作为支持您的问题,您可以创建一个 zip 文件并将其托管在某处。您还可以使用 GitHub 存储库来托管包含所需安装程序的 zip 文件。首次打开应用程序时,下载该 zip 文件,在后台解压,然后您可以在 node.js 中使用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();
如果您正在寻找此类文件的运行时安装,您必须将其打包并与电子应用程序一起发布。要使用电子应用程序发送静态资产文件,您可以阅读帖子here,它将帮助您使用应用程序提供静态资产。
【解决方案2】:
在安装期间找不到触发自定义脚本的方法,因此我最终将依赖项的可执行文件捆绑为资产。使用 Asar 时必须小心确保这些依赖项已解包。
要以可移植格式获取本机依赖项,可以使用 MacOS 上的 Unarchiver 来探索 MSI 和 NSIS 安装程序的内容。 7-Zip 15.05 也可以打开这些。