`
chenhua_1984
  • 浏览: 1237939 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

NSIS软件安装打包工具

    博客分类:
  • NSIS
阅读更多

     NSIS是一个比较好用的,开源的打包工具,通过它,可以让你的应用部署变得简单起来,实现类似WINDOWS向导一样的安装部署你的程序

 

     默认NSIS也提供向导,但是想要更高级的功能,也要自己开发代码脚本哦,它的脚本看起来有点汇编的感觉。。。

 

 

  它的主页 http://nsis.sourceforge.net/Main_Page  ,可以看看他的介绍,还有不少的例子。目前最新版本是NSIS 2.46

  

  下面是一个简答的示例代码

 

!include "zipdll.nsh"
!include "MUI.nsh"
!include "Sections.nsh"

; 安装程序初始定义常量
!define PRODUCT_NAME "####"
;!define PRODUCT_VERSION "3.0"
!define PRODUCT_VERSION "3.0"
!define PRODUCT_PUBLISHER "####有限公司"
!define PRODUCT_WEB_SITE "http://www.abcd#.com.cn"

!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"

!define JDK_NAME jdk1.6.0
!define TOMCAT_NAME apache-tomcat-6.0.16
!define CAPAA_WAR_NAME ####-2010-08-02-1046.war

!define JDK_PATH "D:\####\capaa-web\${JDK_NAME}.zip"
!define TOMCAT_PATH "D:\####\####-web\${TOMCAT_NAME}.zip"


;定义压宿算法
;SetCompressor lzma

;使用XP样式
XPStyle on

Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
;输出文件
OutFile "####-setup.exe"
LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf"

;定义默认安装目录
InstallDir "C:\CAPAA"
Icon "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
UninstallIcon "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
DirText "注意:安装路径不能包含空格或者中文,否则无法正常运行。"
LicenseText "如果您接受所有协议条款,选择“我愿意”继续。您必须接受协议才能安装 $(^Name)。"

;安装协议
;LicenseData "souquan.txt"

ReserveFile "####.ini" # 预先打包文件,方便安装加速释放 ####.ini
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS  # 预先打包文件,方便安装加速释放

Page custom PageInitFunc PageLeaveFunc ""
Page components
Page directory
Page instfiles


;安装时显示详细信息
ShowInstDetails show
ShowUnInstDetails show

BGGradient 0000FF 000000 FFFFFF
BGFont "华文中宋" 40

;释放文件
Section "####"
  SectionIn RO
  SetOverwrite on
  SetOutPath "$INSTDIR"
  File "${TOMCAT_PATH}"
  SetOutPath "$INSTDIR"
  File "${JDK_PATH}"
  SetOutPath "$INSTDIR\bin"
  File /r "bin\*.*"
  SetOutPath "$INSTDIR\lib"
  File /r "lib\*.*"
  SetOutPath "$INSTDIR\war"
  File "war\${####_WAR_NAME}"
SectionEnd

;执行bat文件
Section -Setup
  SetOutPath $INSTDIR
  ZipDLL::extractall "$INSTDIR\war\${CAPAA_WAR_NAME}" "$INSTDIR\####"
  ZipDLL::extractall "$INSTDIR\${TOMCAT_NAME}.zip" "$INSTDIR"
  ZipDLL::extractall "$INSTDIR\${JDK_NAME}.zip" "$INSTDIR"
  Delete "$INSTDIR\${TOMCAT_NAME}.zip"
  Delete "$INSTDIR\${JDK_NAME}.zip"
  ExecShell "open" "$INSTDIR\bin\setup.bat" " $0 $1 $2 $3 $4" "SW_SHOWNORMAL"
SectionEnd

#-- 根据 NSIS 脚本编辑规则,所有 Function 区段必须放置在 Section 区段之后编写,以避免安装程序出现未可预知的问题。--#


Function .onInit
;  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "io.ini"  # 初始化页面
  InitPluginsDir
  File /oname=$PLUGINSDIR\####.ini "####.ini"
FunctionEnd

Function PageInitFunc
  InstallOptions::dialog "$PLUGINSDIR\####.ini"
FunctionEnd

Function PageLeaveFunc
  ReadINIStr $0 "$PLUGINSDIR\####.ini" "Field 7" "State"  #key
  ReadINIStr $1 "$PLUGINSDIR\####.ini" "Field 8" "State"  #jdbc
  ReadINIStr $2 "$PLUGINSDIR\####.ini" "Field 9" "State"  #username
  ReadINIStr $3 "$PLUGINSDIR\####.ini" "Field 10" "State" #password
  ReadINIStr $4 "$PLUGINSDIR\####.ini" "Field 11" "State" #driver
  #MessageBox MB_OK "Password State: $0"
FunctionEnd

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics