Nsi 脚本
!include "MUI2.nsh"#使用现代UI
Unicode true #使用Unicode
!define EXENAME "exeName" #定义常量 exe名称
!define SHORTCUT "快捷方式名称" #定义桌面快捷方式的中文名称
Name ${EXENAME} #安装程序的title
OutFile "${EXENAME}_Setup.exe" #安装程序的名称
InstallDir "$Desktop\${EXENAME}" #默认安装路径为桌面\exe名称
#使用现代UI
!define MUI_ABORTWARNING
!define MUI_WELCOMEFINISHPAGE_BITMAP ${NSISDIR}\Contrib\Graphics\Wizard\orange.bmp
!define MUI_UNWELCOMEFINISHPAGE_BITMAP ${NSISDIR}\Contrib\Graphics\Wizard\orange-uninstall.bmp
!insertmacro MUI_PAGE_WELCOME #欢迎界面
!insertmacro MUI_PAGE_DIRECTORY #设置安装路径
!insertmacro MUI_PAGE_INSTFILES #显示安装细节
!insertmacro MUI_PAGE_FINISH #安装完成
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
!insertmacro MUI_LANGUAGE "SimpChinese"#安装界面为中文
Section
SetOutPath $INSTDIR #安装程序生成后的位置
File *.exe #打包exe文件
File *.dll
File /r MonoBleedingEdge
File /r "${EXENAME}_Data"
WriteUninstaller $INSTDIR\Uninstall.exe #生成卸载程序
CreateDirectory "$SMPROGRAMS\${EXENAME}" #开始程序文件夹内创建文件夹
CreateShortcut "$DESKTOP\${SHORTCUT}.lnk" "$INSTDIR\${EXENAME}.exe" #桌面生成快捷方式 关联exe文件
CreateShortcut "$SMPROGRAMS\${EXENAME}\${EXENAME}.lnk" "$INSTDIR\${EXENAME}.exe" #开始菜单 创建快捷方式
CreateShortcut "$SMPROGRAMS\${EXENAME}\Uninstall.lnk" "$INSTDIR\Uninstall.exe" #开始菜单 创建删除exe的快捷方式
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${EXENAME}" "DisplayName" "${EXENAME}" #控制面板显示程序名称
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${EXENAME}" "UninstallString" "$INSTDIR\Uninstall.exe" #设置卸载程序关联的文件
SectionEnd
Section "Uninstall" #卸载程序的作用
RMDIR /r $INSTDIR #移除安装文件内所有内容
RMDIR /r "$SMPROGRAMS\${EXENAME}" #移除开始菜单\程序名内所有内容
Delete "$DESKTOP\${SHORTCUT}.lnk" #移除桌面快捷方式
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${EXENAME}" #移除注册表内容
SectionEnd
使用
-
构建Unity exe(Mono)文件;
-
构建nsi文件,填充上述代码
-
使用Visula Studio打开
修改文件编码为 -
!define EXENAME “exeName” 设置exeName为发布文件内exe启动程序文件名
!define SHORTCUT “快捷方式名称” 设置桌面快捷方式的中文名称 -
nsi脚本放置到exe文件中
-
打开nsis编译器,拖拽nsi脚本
-
等待编辑即可
-
编译成功 exe文件夹内生成 exeName_Setup.exe文件