使用NSIS制作安装包(2)

一个完整的安装应用程序的脚本。
!include "MUI.nsh"

!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\orange-install-nsis.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall-nsis.ico"
!define MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\orange-nsis.bmp"
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\orange-nsis.bmp"
!define MUI_FINISHPAGE_NOAUTOCLOSE
!define MUI_UNFINISHPAGE_NOAUTOCLOSE

!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH

!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH

!insertmacro MUI_LANGUAGE "SimpChinese"

!define PRODUCT_NAME $InstallName
!define PRODUCT_VERSION "1.0"
!define PRODUCT_PUBLISHER "YiStudio"

InstallDir "$PROGRAMFILES\YiStudio\MIS\"
BrandingText "YiStudio"
ShowInstDetails show
ShowUnInstDetails show

Name $InstallName
OutFile "ModernUI.exe"

var "InstallName"
var "LinkName"
var "ApplicationName"

Function .onInit
    StrCpy $InstallName "XXX信息管理系统"
    StrCpy $LinkName "XXX信息管理系统.lnk"
    StrCpy $ApplicationName "MIS.exe"
FunctionEnd

Section "MainSection" SECMain
    SetOverwrite ifnewer
    ;程序运行所需的所有东西
    ;含有文件夹的
    SetOutPath "$INSTDIR\XML"
    File /r /x .svn D:\SharpDevelop2\MIS\Main\bin\Debug\XML\*.*
    ;可执行程序等
    SetOutPath "$INSTDIR"
    File /r /x .svn D:\SharpDevelop2\MIS\Main\bin\Debug\*.*

    CreateDirectory "$SMPROGRAMS\$InstallName"
    CreateShortCut "$SMPROGRAMS\$InstallName\$LinkName" "$INSTDIR\$ApplicationName"
    CreateShortCut "$DESKTOP\$LinkName" "$INSTDIR\$ApplicationName"

    WriteUninstaller "$INSTDIR\uninst.exe"
    CreateShortCut "$SMPROGRAMS\$InstallName\卸载$LinkName" "$INSTDIR\uninst.exe"

    Exec "$INSTDIR\MIS.exe"
SectionEnd
;这是一个特殊的Section 要包括卸载程序的话必须有此Section 且Section的名字就是Uninstall
Section Uninstall
    Delete "$DESKTOP\XXX信息管理系统.lnk"
    Delete "$SMPROGRAMS\XXX信息管理系统\*.*"

    SetOutPath "$DESKTOP"

    RMDir "$SMPROGRAMS\XXX信息管理系统"
    RMDir /r "$INSTDIR"
SectionEnd


 

脚本中红色的部分可实现安装完成后自动运行程序的功能。


你可能感兴趣的:(安装)