安装文件制作工具NSIS的使用总结

安装文件制作工具NSIS 使用总结

在给客户开发客户端软件时,为避免技术人员亲自上门安装带来额外的成本损耗,通常我们都会自作一个安装包,以确保我们开发的程序的相关依赖资源、环境在客户端运行前能自动地正确配置好。

NSIS是一个比较流行的安装文件制作工具,制作简单,提供脚本语言来定义环境和程序的静态资源配置,使得安装文件可定制化, 并能根据自定义的脚本文件自动生成可执行的安装包, 大大地简化了程序员的发布工作。

NSIS提供了多个脚本demo,可在UI上直接打开来查看其demo 并学习。

其脚本指令基本都用于设置安装程序的几大部件: 安装程序标题, 默认安装目录,待copy的文件, 目标地址及目录结构,运行环境设置:注册表, 卸载时的操作:删除文件,注册表。

因此其对应的脚本指令大概有以下几类:

1. 安装程序标题: Name

2. 默认安装目录:InstallDir

3. 待copy的文件: File

4. 目标地址及目录结构:InstallDir

5. 运行环境设置:注册表,快捷方式: WriteRegStr,CreateShortCut

6. 卸载时的操作:删除文件,目录,注册表: Delete,RMDir, DeleteRegKey

注意点:

1.  如果程序需安装在C盘,在win vista后续版本需要获取 admin 权限。

2. 如需在目标地址下添加目录,则需在创建目录后,设置新的输出目录。

CreateDirectory $INSTDIR\mplayer
         SetOutPath $INSTDIR\mplayer

脚本代码实例如下:

; VRA.nsi
;
; This script is based on VRA.nsi, but it remember the directory, 
; has uninstall support and (optionally) installs start menu shortcuts.
;
; It will install VRA.nsi into a directory that the user selects,

;--------------------------------

; The name of the installer
Name "VRA installer"
InstallDir "C:\VRA"

; The file to write
; OutFile "example2.exe"
OutFile "VRA_Installer.exe"
RequestExecutionLevel admin

; The default installation directory
;InstallDir $PROGRAMFILES\VRA

; Registry key to check for directory (so if you install again, it will 
; overwrite the old one automatically)
InstallDirRegKey HKLM "Software\VRA" "Install_Dir"

; Request application privileges for Windows Vista
RequestExecutionLevel admin

;--------------------------------

; Pages

Page components
Page directory
Page instfiles

UninstPage uninstConfirm
UninstPage instfiles

;--------------------------------

; The stuff to install
Section "VRA (required)"

SectionIn RO

; Set output path to the installation directory.
SetOutPath $INSTDIR

; Put file there
;File "example2.nsi"
File "bz2.pyd"
File "MSVCP90.dll"
File "MSVCR90.dll"
File "msvcrt.dll"
File "pycpuid._pycpuid.pyd"
File "python27.dll"
File "pywintypes27.dll"
File "screen_left.bmp"
File "select.pyd"
File "unicodedata.pyd"
File "user32.dll"
File "VRA.exe"
File "VRA.exe.manifest"
File "win32api.pyd"
File "win32evtlog.pyd"
File "wx._controls_.pyd"
File "wx._core_.pyd"
File "wx._gdi_.pyd"
File "wx._misc_.pyd"
File "wx._windows_.pyd"
File "wxbase30u_net_vc90.dll"
File "wxbase30u_vc90.dll"
File "wxmsw30u_adv_vc90.dll"
File "wxmsw30u_core_vc90.dll"
File "wxmsw30u_html_vc90.dll"
File "_ctypes.pyd"
File "_hashlib.pyd"
File "_socket.pyd"
File "_ssl.pyd"
File "mplayer.exe"
CreateDirectory $INSTDIR\mplayer
SetOutPath $INSTDIR\mplayer
File "mplayer\config"
SetOutPath $INSTDIR

; Write the installation path into the registry
WriteRegStr HKLM SOFTWARE\VRA "Install_Dir" "$INSTDIR"
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Run" Shell "$INSTDIR\VRA.exe"

; Write the uninstall keys for Windows
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VRA" "VRA" "VRA"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VRA" "Uninstall_VRA" ‘"$INSTDIR\uninstall.exe"‘
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VRA" "NoModify" 1
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VRA" "NoRepair" 1
WriteUninstaller "uninstall.exe"

SectionEnd

; Optional section (can be disabled by the user)
Section "Start Menu Shortcuts"

CreateDirectory "$SMPROGRAMS\VRA"
CreateShortCut "$SMPROGRAMS\VRA\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
CreateShortCut "$SMPROGRAMS\VRA\VRA.lnk" "$INSTDIR\VRA.exe" "" "$INSTDIR\VRA.exe" 0

SectionEnd

; Optional section (can be disabled by the user)
Section "Desktop Shortcuts" SectionX

SetShellVarContext current
CreateShortCut "$DESKTOP\VRA.lnk" "$INSTDIR\VRA.exe"
;WriteRegStr HKLM "Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\layers" "$INSTDIR\VRA.exe" "RUNASADMIN"
SectionEnd

;--------------------------------

; Uninstaller

Section "Uninstall"

; Remove registry keys
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VRA"
DeleteRegKey HKLM SOFTWARE\VRA

; Remove files and uninstaller
;Delete $INSTDIR\example2.nsi
;Delete $INSTDIR\uninstall.exe
Delete "$INSTDIR\bz2.pyd"
Delete "$INSTDIR\Microsoft.VC90.CRT.manifest"
Delete "$INSTDIR\msvcm90.dll"
Delete "$INSTDIR\msvcp90.dll"
Delete "$INSTDIR\msvcr90.dll"
Delete "$INSTDIR\msvcrt.dll"
Delete "$INSTDIR\pycpuid._pycpuid.pyd"
Delete "$INSTDIR\python27.dll"
Delete "$INSTDIR\pywintypes27.dll"
Delete "$INSTDIR\screen_left.bmp"
Delete "$INSTDIR\select.pyd"
Delete "$INSTDIR\unicodedata.pyd"
Delete "$INSTDIR\user32.dll"
Delete "$INSTDIR\VRA.exe"
Delete "$INSTDIR\VRA.exe.manifest"
Delete "$INSTDIR\win32api.pyd"
Delete "$INSTDIR\win32evtlog.pyd"
Delete "$INSTDIR\wx._controls_.pyd"
Delete "$INSTDIR\wx._core_.pyd"
Delete "$INSTDIR\wx._gdi_.pyd"
Delete "$INSTDIR\wx._misc_.pyd"
Delete "$INSTDIR\wx._windows_.pyd"
Delete "$INSTDIR\wxbase30u_net_vc90.dll"
Delete "$INSTDIR\wxbase30u_vc90.dll"
Delete "$INSTDIR\wxmsw30u_adv_vc90.dll"
Delete "$INSTDIR\wxmsw30u_core_vc90.dll"
Delete "$INSTDIR\wxmsw30u_html_vc90.dll"
Delete "$INSTDIR\_ctypes.pyd"
Delete "$INSTDIR\_hashlib.pyd"
Delete "$INSTDIR\_socket.pyd"
Delete "$INSTDIR\_ssl.pyd"
Delete "$INSTDIR\mplayer.exe"
Delete "$INSTDIR\mplayer\config"
Delete "init.check"
Delete "init.video"
Delete "kamhearing.log"
Delete "player_reg.dll"
Delete "uninstall.exe"

; Remove shortcuts, if any
Delete "$SMPROGRAMS\VRA\*.*"
Delete "$SMPROGRAMS\VRA\VRA.lnk"

; Remove directories used
RMDir "$SMPROGRAMS\VRA"
RMDir "$INSTDIR\mplayer"
RMDir "$INSTDIR"

SectionEnd

时间: 2024-10-09 21:09:16

安装文件制作工具NSIS的使用总结的相关文章

ubuntu安装文件比较工具Meld

Meld是一款可视化的文件及目录对比(diff) / 合并 (merge) 工具,通过它你可以对两个或三个文件/目录进行对比,并以图形化的方式显示出它们的不同之处,同时还提供编辑及合并功能,另外还支持 CVS, Subversion, Bazaar-ng 和 Mercurial 等版本控制工具. 项目主页: http://meld.sourceforge.net/ # Ubuntu 用户安装: sudo apt-get install meld # 整合到gedit sudo apt-get i

PiXYZ STUDIO 专业级最新3D文件制作工具

产品概述:: 与CAD文件交互,制作并优化数据,满足客户需求;顶级CAD文件制作和优化软件 PiXYZ STUDIO软件是一款功能独特的3D文件制作工具,搭载最先进的镶嵌细分器.软件可缩小行业主流软件(如:Catia, NX, SolidWorks等软件)的CAD文件大小,优化模型的网格. 用户可使用PiXYZ STUDIO用户交互界面上的大量功能和算法.高级用户可使用软件内嵌的Python API编写脚本,实现文件的复杂操作,如:软件默认没有的批量导入或导出处理功能. PiXYZ STUDIO

安装包制作工具 SetupFactory 详解

Setup Factory 是一个强大的安装程序制作工具.提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序.可建立快捷方式,也可直接在 Windows 系统的注册表加入内容,还能在 Win.ini 和 System.ini 内加入设定值,更可以建立反安装选项等等.它内附的向导可以一步步的带领您做出漂亮又专业的安装程序. 本篇通过一个WinFrom项目制作安装包程序过程详细介绍其使用方法. 下面截图中使用的 SetupFactory版本为 V9.0.3. 0 汉化版.网

linux bin文件制作

一 Linux安装文件 Linux常见的安装为tar,zip,gz,rpm,deb,bin等.我们可以简单的分为三类, 第一:打包或压缩文件tar,zip,gz等,一般解压后即可,或者解压后运行sh文件: 第二:对应的有管理工具的deb,rpm等,通常的这类安装文件可以通过第三方的命令行或UI来简单的安装,例如Ubuntu中的apt来安装deb,Redhat中的yum来安装rpm: 第三:像.bin类,其实就是把sh和zip打包为bin,或把sh和rpm打包为bin等,当在命令行运行bin安装文

Windows应用安装制作工具调查报告

Windows应用安装方式 Windows应用安装主要有如下两种方式: exe:可执行程序(executable program,EXE File) Microsoft Windows Installer( MSI) 说到MSI文件,不得不先说说Windows Installer,它不只是安装程序,而且是可扩展的软件管理系统.Windows Installer的用途包括:管理软件的安装.管理软件组件的添加和删除.监视文件的复原以及使用回滚技术维护基本的灾难恢复.另外,Windows Instal

装机员U盘启动PE制作工具V5.0(UEFI+UD+首发自动安装MSDN版系统)

软件名称: 装机员U盘启动PE制作工具V5.0(UEFI+UD) 软件语言: 简体中文 软件大小: 288 大小: MB 发布日期: 2016-10-02 文件名称: ZhuangJiYuanPESetup_V5.0.exe M D 5: E8EBB32CB08E914F3C5E0B8BC1A4ACAB 软件封面: 迅雷下载: thunder://QUFodHRwOi8vZG93bi56aHVhbmdqaXl1YW4uY29tOjk1My9aaHVhbmdKaVl1YW5QRVNldHVwX1Y

使用老毛桃u盘启动盘制作工具安装Win7图文教程

第一类方法: 原生U盘安装,本工具制作完的U盘启动菜单含Windows7操作系统安装功能,使用本功能可以将Win7系统完美移植到你的U盘中.本功能不用进PE不用虚拟光驱,不受FAT32和NTFS文件系统限制,不用再次格式化U盘,速度远远快过光盘安装,是纯U盘安装.由于启动命令里已经交换了磁盘顺序,所以不会出现安装的时候第一磁盘是U盘的情况(实机测试过),请放心使用. 提醒:请勿在虚拟机下测试本安装方法,虚拟机测试一般会失败. 具体步骤: 1.先使用老毛桃U盘启动盘制作工具制作完U盘启动. 2.找

老毛桃U盘启动盘制作工具安装教程

老毛桃U盘启动盘制作工具V2013(UD+ISO超级版)-安装原版Win7或Win8教程 2014/12/19 安装原版Win7两类方法 注:以下安装方法除了第二类中的方法1之外所有的方法均可适用于64位win7或者win8系统的安装 第一类方法: 原生U盘安装,本工具制作完的U盘启动菜单含Windows7操作系统安装功能,使用本功能可以将Win7系统完美移植到你的U盘中.本功能不用进PE不用虚拟光驱,不受FAT32和NTFS文件系统限制,不用再次格式化U盘,速度远远快过光盘安装,是纯U盘安装.

U盘启动盘制作工具(安装Linux)

2018-09-15 17:36:42 1. Etcher  官网:https://etcher.io/ 资料来源:https://linuxmint-installation-guide.readthedocs.io/zh_CN/latest/burn.html 步骤:下载.安装.运行,界面如下图所示 点击 Select image,然后选择您的ISO文件.   点击 Select drive,然后选择您的U盘.   点击 Flash! 利用此工具制作完成后,U盘会被全部占用,暂时无法存储文件