参考文章:
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改成自己的组件名称
有多个组件的话将{EndIf}复制一份放到${EndIf}后面
注意:{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重新打包可能会更改文件名防止重复,如下图
点击红色部分到错误行,找到路径里的文件名复制,到错误行把文件名修改,保存编译就好
编辑