使用NSIS打包程序安装包
使用NSIS打包程序安装包
我使用的NSIS 软件是V3.08 简体中文增强版,下载安装是按照 水晶石 的文章教程操作的
(原文链接:https://www.cnblogs.com/NSIS/p/16581122.html )。
如果原文链接已失效,有需要的朋友可以在下方下载:
链接:https://pan.baidu.com/s/1lW5rdoqR9Y1x3XwFBViZbg?pwd=566r
提取码:566r
打包步骤:
1、打开NSIS菜单,选择“VNsiedit(编译器环境)”
然后会打开下图窗口

2、新建安装向导:选择左上角“文件”-“新建脚本:向导”
(熟悉NSIS脚本编写的话可以选择其他的方式进行新建脚本)

然后会弹出下图脚本向导窗口,按照步骤一步步来就可以编写好一个基本的脚本文件了。

具体操作步骤如下:
(1)填写应用程序信息,包括程序名称、版本号、出版人信息、出版人或公司网站、程序标志(可以默认不用改)

(2)指定安装程序选项,包括安装程序logo、安装程序名称、语言(默认选择“简体中文”)、图形界面和压缩算法。
图形 界面和压缩算法可以参考其他资料介绍进行修改,一般默认选择即可。

(3)设置快闪屏幕和背景窗口
这一步可以直接跳过,这部分是修改安装时背景可视效果。

(4)设置应用程序的目录与授权信息
默认目录一般无须修改,如果没有授权文件,需要将红色部分内容清空,再进行下一步操作

(5)指定应用程序文件
下图左侧1部分是展示安装组件;
2部分可以对选中组件的文件进行编辑,可以新建单个文件或文件夹、更改和删除文件;
3部分是展示选中组件已添加的文件列表;
4部分是在多个可选安装组件情况下,是否允许用户自行选择安装组件,如果只有一个组件,不用勾选;
5部分是对组件的描述,方便用户了解程序信息;
6部分可以新建组件、更改组件名称和删除组件;

(6)设置应用程序图标
在红框部分,一定要有您添加的程序快捷方式,才算添加应用程序文件成功,一般会有两个快捷方式,一个是安装目录下的快捷方式,一个是桌面快捷方式

(7)指定安装程序之后运行
默认选择即可,在安装完成后会提示是否运行程序

(8)指定卸载程序属性
这一步是设置卸载程序向导的信息,一般只需要修改程序图标即可,其他可以默认

(9)完成安装向导
勾选前两个即可,先将脚本保存,然后再根据需求编辑脚本

3、自定义编辑脚本文件
以下介绍常用的脚本设置设置。
所有 Function 区段必须放置在 Section 区段之后编写
(1) 有两个组件需要安装,并且允许用户自行选择安装第二个组件时
Function .onInstSuccess
SectionGetFlags ${SEC02} $0 # 检测 SEC1 的选择状态,1为已勾选该组件
IntOp $0 $0 & ${SF_selectED} # 只过滤勾选的状态,Checkbox 的状态可能包含多位
IntCmp $0 ${SF_selectED} showpage hidepage hidepage
showpage:
Execwait '"$INSTDIR\xxxx.exe" /q'
hidepage:
FunctionEnd
(2) 安装前检查是否已安装该程序
Function .onInit
ClearErrors
ReadRegStr $UNINSTALL_PROG ${PRODUCT_UNINST_ROOT_KEY} ${PRODUCT_UNINST_KEY} "UninstallString"
IfErrors done
ReadRegStr $OLD_VER ${PRODUCT_UNINST_ROOT_KEY} ${PRODUCT_UNINST_KEY} "DisplayVersion"
MessageBox MB_YESNOCANCEL|MB_ICONQUESTION \
"检测到本机已经安装了 ${PRODUCT_NAME} 。\
$\n$\n是否先卸载已安装的版本?" \
/SD IDYES \
IDYES uninstall \
IDNO done
Abort
uninstall:
StrCpy $OLD_PATH $UNINSTALL_PROG -10
ExecWait '"$UNINSTALL_PROG" /S _?=$OLD_PATH' $0
DetailPrint "uninst.exe returned $0"
Delete "$UNINSTALL_PROG"
RMDir $OLD_PATH
done:
FunctionEnd
(3)设置开机自启
这是将程序的快捷方式添加到开机启动的注册表中,要注意在卸载程序部分添加删除注册表信息。
添加开机自启(在安装完成可选择是否设置开机自启动)
以下这段放在“; MUI 预定义常量”后面,“开机自启动”是选择项的名称
; 开机自启动
!define MUI_FINISHPAGE_SHOWREADME
!define MUI_FINISHPAGE_SHOWREADME_Function AutoBoot
!define MUI_FINISHPAGE_SHOWREADME_TEXT "开机自启动"
下面这段放置在 Section 区段之后
Function AutoBoot
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "程序名"'"$DESKTOP\程序名.lnk"'
FunctionEnd
删除开机自启
添加到“Section Uninstall”部分中
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Run\xxx"
(4) 修改安装向导内的文字描述
- 修改“选择安装位置”的文字描述

将以下代码放在欢迎页面 !insertmacro MUI_PAGE_WELCOME代码段后面,
; 安装目录选择页面
!define MUI_PAGE_HEADER_TEXT "选择目标文件夹"
!define MUI_PAGE_HEADER_SUBTEXT "选择您要安装$(^Name)的目标文件夹"
- 修改选择安装目录步骤的文字描述

- 修改选择安装位置页的
安装按钮文字

# 安装按钮文字修改 (无位置要求)
InstallButtonText "继续(&C)"
- 修改安装程序结束的文字描述

将以下代码放在!insertmacro MUI_PAGE_INSTFILES代码后面
# 修改
!define MUI_FINISHPAGE_TITLE "$(^Name)安装已完成!"
- 修改安装程序结束的提示文字描述

将以下代码放在!insertmacro MUI_PAGE_INSTFILES代码后面
# 修改
!define MUI_FINISHPAGE_TEXT "已成功安装$(^Name)到您的电脑中。"
!insertmacro MUI_PAGE_FINISH
- 其他更快捷且一劳永逸的方法:修改语言文件
找到NSIS的安装目录,打开Contrib\Language files文件夹,找到对应的语音文件,如使用简体中文的语言文件SimpChinese.nsh和SimpChinese.nlf(可以用记事本打开和修改)
SimpChinese.nsh

SimpChinese.nlf

更多推荐
所有评论(0)