使用 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 也可以打开这些。
我目前正在使用 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 也可以打开这些。