项目自动化之道-7.安装与部署之增强安装形象

来源:互联网 发布:sam软件 编辑:程序博客网 时间:2024/05/01 10:12

      之前的程序即使是按键发布,产生的也只是一个RAR文件包,客户拿到之后需要解压之后放在某文件夹下,然后执行index.bat文件。这和我们常用的安装软件方法不太相同,所以这里增强安装形象。

      使用NSIS可以创建应用程序的安装和卸载包。这个程序是编译安装卸载脚本来实现生产安装程序的。所以我们首先需要编写脚本。编写脚本使用HM NIS Edit程序,使用这个程序可以由向导产生安装脚本。

      首先我们将按键发布的源程序拷贝到E:\www.dongsuqin.cn\a文件夹下,内容为:


      再由HM向导开始编写安装脚本,安装图标选择favicon.ico文件,第五步选择应用程序文件时,将所有文件添加到右侧。Vendor的内容需要新建一个section存进去。第六步修改快捷方式为index.bat文件。生成的脚本基本可行,但是不知为何需要在vendor的section下面加上一行SetOutPath "$INSTDIR\vendor\lib",这样才能递归建立vendor的路径。

      整个文件为:

; Script generated by the HM NIS Edit Script Wizard. ; HM NIS Edit Wizard helper defines!define PRODUCT_NAME "userview"!define PRODUCT_VERSION "2012"!define PRODUCT_PUBLISHER "gongqingkui@126.com"!define PRODUCT_WEB_SITE "http://www.stdu.educ.n"!define PRODUCT_DIR_REGKEY"Software\Microsoft\Windows\CurrentVersion\App Paths\makensis.exe"!define PRODUCT_UNINST_KEY"Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"!define PRODUCT_UNINST_ROOT_KEY "HKLM" ; MUI 1.67 compatible ------!include "MUI.nsh" ; MUI Settings!define MUI_ABORTWARNING!define MUI_ICON "D:\www.dongsuqin.cn\a\favicon.ico"!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" ; Welcome page!insertmacro MUI_PAGE_WELCOME; License page!insertmacro MUI_PAGE_LICENSE "${NSISDIR}\License.txt"; Directory page!insertmacro MUI_PAGE_DIRECTORY; Instfiles page!insertmacro MUI_PAGE_INSTFILES; Finish page!define MUI_FINISHPAGE_RUN "$INSTDIR\makensis.exe"!insertmacro MUI_PAGE_FINISH ; Uninstaller pages!insertmacro MUI_UNPAGE_INSTFILES ; Language files!insertmacro MUI_LANGUAGE "English" ; MUI end ------ Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"OutFile "Setup.exe"InstallDir "$PROGRAMFILES\userview"InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""ShowInstDetails showShowUnInstDetails show Section "MainSection" SEC01  SetOutPath"$INSTDIR"  SetOverwrite ifnewer  File"${NSISDIR}\makensis.exe"  CreateDirectory"$SMPROGRAMS\userview"  CreateShortCut"$SMPROGRAMS\userview\userview.lnk" "$INSTDIR\index.bat"  CreateShortCut"$DESKTOP\userview.lnk" "$INSTDIR\makensis.exe"  File"${NSISDIR}\License.txt"  File"D:\www.dongsuqin.cn\a\userview.jar"  File"D:\www.dongsuqin.cn\a\Licence.txt"  File"D:\www.dongsuqin.cn\a\index.bat"  File"D:\www.dongsuqin.cn\a\favicon.ico"SectionEnd Section "vendor" SEC02  SetOutPath"$INSTDIR\vendor\lib"  File"D:\www.dongsuqin.cn\a\vendor\lib\sqljdbc4.jar"  File"D:\www.dongsuqin.cn\a\vendor\lib\mysql-connector-java-5.1.7-bin.jar"  File"D:\www.dongsuqin.cn\a\vendor\lib\junit.jar"SectionEnd Section -AdditionalIcons  WriteIniStr"$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut""URL" "${PRODUCT_WEB_SITE}"  CreateShortCut"$SMPROGRAMS\userview\Website.lnk""$INSTDIR\${PRODUCT_NAME}.url"  CreateShortCut"$SMPROGRAMS\userview\Uninstall.lnk" "$INSTDIR\uninst.exe"SectionEnd Section -Post  WriteUninstaller"$INSTDIR\uninst.exe"  WriteRegStr HKLM"${PRODUCT_DIR_REGKEY}" """$INSTDIR\makensis.exe"  WriteRegStr${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}""DisplayName" "$(^Name)"  WriteRegStr${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString""$INSTDIR\uninst.exe"  WriteRegStr${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}""DisplayIcon" "$INSTDIR\makensis.exe"  WriteRegStr${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}""DisplayVersion" "${PRODUCT_VERSION}"  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY}"${PRODUCT_UNINST_KEY}" "URLInfoAbout""${PRODUCT_WEB_SITE}"  WriteRegStr${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}""Publisher" "${PRODUCT_PUBLISHER}"SectionEnd  Function un.onUninstSuccess  HideWindow  MessageBoxMB_ICONINFORMATION|MB_OK "$(^Name) 已成功地从你的计算机移除。"FunctionEnd Function un.onInit  MessageBoxMB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "你确实要完全移除 $(^Name) ,其及所有的组件?"IDYES +2  AbortFunctionEnd Section Uninstall  Delete"$INSTDIR\${PRODUCT_NAME}.url"  Delete"$INSTDIR\uninst.exe"  Delete"$INSTDIR\junit.jar"  Delete"$INSTDIR\mysql-connector-java-5.1.7-bin.jar"  Delete"$INSTDIR\sqljdbc4.jar"  Delete"$INSTDIR\favicon.ico"  Delete"$INSTDIR\index.bat"  Delete"$INSTDIR\Licence.txt"  Delete"$INSTDIR\userview.jar"  Delete"$INSTDIR\License.txt"  Delete"$INSTDIR\makensis.exe"   Delete"$SMPROGRAMS\userview\Uninstall.lnk"  Delete"$SMPROGRAMS\userview\Website.lnk"  Delete"$DESKTOP\userview.lnk"  Delete"$SMPROGRAMS\userview\userview.lnk"   RMDir"$SMPROGRAMS\userview"  RMDir "$INSTDIR"   DeleteRegKey${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"  DeleteRegKey HKLM"${PRODUCT_DIR_REGKEY}"  SetAutoClose trueSectionEnd

      编译执行之后产生了和上文favicon.ico图标类似的安装文件setup.exe。双击此文件就可以完成安装。

参考

1.      项目自动化之道-1.使用ant进行单步建构

2.      项目自动化之道-2.使用CruiseControl定时建构

3.      项目自动化之道-3.按键发布Ant

4.      项目自动化知道-4.按键发布Bat

5.      项目自动化之道-5.按键发布Bat版的jar打包改进

6.      项目自动化之道-5.安装与部署之诊断测试

原创粉丝点击