关于NSIS

1、NSIS简介

(1)NSIS是什么?

    一款免费的Win32安装、卸载系统!

(2)NSIS有什么特点?

    脚本简洁高效、系统开销小,进行安装、卸载、设置、解压文件也不在话下,几乎可以做所有的事情。

2、工具

    NSIS Edit + NSIS

3、使用方式

    脚本向导 + 修改代码 = 个性化安装包

准备文件

    以下是我即将打包的所有文件,安装包目录结构(包括:可执行程序、插件库、运行时库、授权文件、卸载程序图标等等!)如下图所示:(省略)


根据向导可以生成脚本,保存并编译即可打包生成安装包!非常方便。

具体修改方法自行查阅,这里就不介绍了。



下面是一个简洁版的脚步,具备安装与彻底卸载功能的示例:

;Author: tinyms
;Date: 2011-06-22
;usage: replace NSIS/Contrib/zip2exe/Modern.nsh
;RequestExecutionLevel none|user|highest|admin
 
;RequestExecutionLevel user
 
!include "MUI.nsh"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "SimpChinese"
 
!define NAME "你的Exe名称"
;自行修改自己的安装包ico
Icon "D:/logo.ico"
 
Section
    SetOutPath $INSTDIR\${NAME}\bin
        ;修改自己Exe位置的快捷方式指向
    CreateShortCut $DESKTOP\${NAME}.lnk $INSTDIR\${NAME}\bin\${NAME}.exe
    SetShellVarContext All
        ;修改自己Exe位置的快捷方式指向
    CreateShortCut $SMPROGRAMS\${NAME}.lnk $INSTDIR\${NAME}\bin\${NAME}.exe
    WriteRegStr HKLM "Software\${NAME}" "" "$INSTDIR"
        ;在控制面板中可以有删除项
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayName" "${NAME}"
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "UninstallString" '"$INSTDIR\${NAME}\uninst.exe"'
    WriteUninstaller "$INSTDIR\${NAME}\uninst.exe"
SectionEnd
 
Section "Uninstall"
    Delete $DESKTOP\${NAME}.lnk
    SetShellVarContext All
    Delete $SMPROGRAMS\${NAME}.lnk
    DeleteRegKey HKLM "Software\${NAME}"
    DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}"
    RMDir /r "$INSTDIR"
SectionEnd