Electron打包后的软件包打包成exe安装包,并在安装后逐步安装驱动等组件

114 阅读4分钟

 参考文章:

Electron打包成win安装包并创建桌面快捷方式 - 少数派

多个exe文件打包成一个exe安装程序,在安装时选择模块_多个软件打包成一键安装-CSDN博客

使用 NIS Edit 向导模式新建脚本时,需要依赖改编译器。NIS Edit 会自动加载该编译器。
下载地址:nsis.sourceforge.io/Download

​编辑

下载安装以后关掉就好

 打包工具NisEdit下载地址:hmne.sourceforge[.net](https://so.csdn.ne… ".net")

​编辑下载好后选择语言安装就好

​编辑 ​

 一、开始打包

1.点击文件 > 新建脚本:向导

​编辑

2.填写想要打包的程序名、版本号,最后两个可以删掉;

​编辑

​​

 3.安装图标(不选的话会用一个默认的图标);安装程序文件:生成的安装程序名称;安装程序语言,默认是English,往后拖有“SimpChinese”;

​编辑

4.没有授权文件可以把路径删掉

​编辑

​​

 5.选中右面的文件,点x把两个默认的删掉,点击上面第二个选项选择自己的exe文件夹

​编辑

​​

 5.选中右面的文件,点x把两个默认的删掉,点击上面第二个选项选择自己的exe文件夹

​编辑

​​

 5.选中右面的文件,点x把两个默认的删掉,点击上面第二个选项选择自己的exe文件夹

​编辑

​​​编辑​​

 有组件的话点击左边第一个按钮添加,然后重复上面的步骤选择组件文件夹

​编辑

​​​编辑​​

 因为我想要让组件自动安装,所以没有勾选“允许用户选择要安装的组件"

6.一定要确定这两个目的文件对不对,不对的话双击修改

​编辑

​​​编辑​​

 7.这里也要注意这个路径正确,如果不想让用户选择安装后运行的话可以把这个路径删掉

​编辑

​​

 ​编辑

​​

 8.这里的解除安装程序图标也是,不选的话会用一个默认的图标

​编辑

9.点击完成,先不要编译

​编辑

​​

二、配置组件安装

在红框内编辑脚本,先找一下有没有Function .onInstSuccess这个方法,没有的话复制下面的代码放进去,这个Function 是在主程序安装之后触发的

​编辑


Function .onInstSuccess
  ; 设置安装路径
  SetOutPath "$INSTDIR"

  ;如果选择就安装依赖库
  ${If} ${SectionIsSelected} ${SEC02}
    ; 如果选中了该组件,则运行 该.exe
    ; ExecWait 是等待安装结束才继续
    ; /S是设置静默安装
    ExecWait '"$INSTDIR\SETUP.EXE" /S' $0
    ; 如果知道程序的返回值的话可以判断一下程序是否安装成功
    ${If} $0 != 0
      MessageBox MB_ICONINFORMATION|MB_OK "驱动程序安装失败,退出代码: $0"
      Abort
    ${EndIf}
  ${EndIf}
  
  ; 如果前置安装成功,继续运行主程序
  ExecShell "open" "$INSTDIR\main.exe"
FunctionEnd

注意将SETUP.EXE改成自己的组件名称

有多个组件的话将If{If} {EndIf}复制一份放到${EndIf}后面

注意:If{If} {EndIf}成对出现

我因为需要组件自动安装,所以加了/S,需要手动选择组件安装的话把/S删掉,注意要删掉斜杠前面的空格

不需要安装组件后自动运行主程序,可以把ExecShell "open" "$INSTDIR\main.exe"删掉 ​

Function .onInstSuccess
  SetOutPath "$INSTDIR"
  ${If} ${SectionIsSelected} ${SEC02}
    ExecWait '"$INSTDIR\SETUP.EXE" /S' $0
    ${If} $0 != 0
      MessageBox MB_ICONINFORMATION|MB_OK "Driver installation failed with exit code: $0"
      Abort
    ${EndIf}
  ${EndIf}
FunctionEnd

这个是我自己在用的备份 ​ ​​

 三、保存,然后右键编译脚本,打包好的exe安装包会保存到你保存脚本的地方,你也可以在下面的运行框里找到路径

​编辑

​编辑

​​

 四、题外话

每次重新打开Nis的话是会重置窗口的,注意保存好脚本,下次需要用可以在文件里打开或重新打开.nsi脚本文件

​编辑

​​

 electron重新打包可能会更改文件名防止重复,如下图

点击红色部分到错误行,找到路径里的文件名复制,到错误行把文件名修改,保存编译就好

​编辑

​ ​