本文介绍如何在 electron-builder 打包过程中,通过编写 NSIS 脚本实现安装 Electron 应用时自动静默安装 Virbox 等依赖程序。主要步骤包括配置 nsis.include 指向自定义脚本,利用 extraResources 将 exe 文件复制到安装目录,并在 NSIS 宏中请求管理员权限、清理旧文件夹及执行带参数的静默安装命令。
需求背景
在安装 Electron 应用时,有时需要同时安装 Virbox 等第三方应用程序以进行许可验证。
具体的实现方案如下。
首先,需要在 electron-builder 的配置中添加 NSIS 脚本的路径引用。
配置 NSIS 脚本路径
builderOptions: {
nsis: {
oneClick: false, // 是否一键安装
perMachine: false, //辅助安装,(选择按机器还是按用户)。true时代表始终按用户安装。
allowElevation: true, // 允许请求提升。 如果为false,则用户必须使用提升的权限重新启动安装程序。
allowToChangeInstallationDirectory: true, // 允许修改安装目录
include: 'installer.nsh', //NSIS脚本
},
}编写 NSIS 脚本
其次,在项目根目录下创建 build 文件夹,并在其中新建 installer.nsh 文件用于存放 NSIS 脚本逻辑。

在 installer.nsh 文件中,需要编写相关逻辑以实现请求管理员权限、清空指定文件夹以及携带参数静默安装目标程序的功能。
配置资源文件引用
!macro customHeader
RequestExecutionLevel admin
!macroend
!macro customInstall
RMDir /r "C:\ProgramData\SenseShield\ss"
ExecWait '"$INSTDIR\resources\XXX.exe" /S(安装携带的参数,空格隔开)'
!macroend最后,在 electron-builder 配置中通过 extraResources 选项,将待安装的 exe 文件复制到 Electron 安装目录的 resources 文件夹下,以便程序能够正确索引并调用该文件。
extraResources: [
// 程序
{
from: 'build/xxx.exe',
to: './'
},
]到此这篇关于electron-builder书写nsis脚本在安装electron程序时安装其他应用程序的文章就介绍到这了,更多相关electron-builder安装electron程序内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!