安装文件制作工具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

转载于:https://www.cnblogs.com/ToDoToTry/p/4014790.html

简单易用的安装文件制作工具NSIS的使用demo示例相关推荐

  1. Linux .bin安装文件制作

    一 Linux安装文件 Linux常见的安装为tar,zip,gz,rpm,deb,bin等.我们可以简单的分为三类, 第一:打包或压缩文件tar,zip,gz等,一般解压后即可,或者解压后运行sh文 ...

  2. 简单易用线上引流测试工具:GoReplay

    一. 引流测试产生背景 日常大部分的测试工作都是在测试环境下,通过模拟用户的行为来对系统进行验证,包括功能以及性能.在这个过程中,你可能会遇到以下问题: 用户访问行为比较复杂,模拟很难和用户行为一致, ...

  3. Java安装程序制作工具

    Java安装程序制作工具 IzPack 是一个 Java 安装程序制作工具,能够制作一些简单的安装程序.制作出来的安装程序能在 Unix-like, MacOS X, Windows 等系统平台上运行 ...

  4. linux bin文件安装文件,Linux .bin安装文件制作

    一 Linux安装文件 Linux常见的安装为tar,zip,gz,rpm,deb,bin等.我们可以简单的分为三类, 第一:打包或压缩文件tar,zip,gz等,一般解压后即可,或者解压后运行sh文 ...

  5. html help文档制作,HTML Help Workshop(文件制作工具)

    HTML Help Workshop 是一款专业高效的文件制作工具.它能够帮助我们对CHM文件进行快速编程配置,也可快速的进行建立需要的HYML格式的文件,软件还可单独的进行运行,可快速的制作出CHM ...

  6. 安装包制作工具NSIS (NullSoft Scriptable Install System)

    使用NSIS (NullSoft Scriptable Install System)制作安装程序快速指南 转:http://xltx.blog.hexun.com/32224064_d.html N ...

  7. 推荐一款简单易用线上引流测试工具:GoReplay

    一. 引流测试产生背景 日常大部分的测试工作都是在测试环境下,通过模拟用户的行为来对系统进行验证,包括功能以及性能.在这个过程中,你可能会遇到以下问题: 用户访问行为比较复杂,模拟很难和用户行为一致, ...

  8. 【开源共享】全网最简单易用的imx6ull烧写工具设计初衷工作原理设计前的思考

    在线课堂:https://www.100ask.net/index(课程观看) 论  坛:http://bbs.100ask.net/(学术答疑) 开 发 板:https://100ask.taoba ...

  9. linux安装光盘制作工具,(三)Linux平台多操作系统安装盘制作工具

    # 目录 [TOC] # 概述 该工具可用于自动制作多操作系统安装盘,同时可用于对安装盘的分区进行管理. ![title](/api/file/getImage?fileId=5dde396256fe ...

  10. 快捷方便简单易操作的javaweb免费报表工具

    近几年来随着智慧园区.智慧城市的兴起,大屏数据可视化也有了越来越多的可落地的应用场景,对于管理层和决策层来说大屏的展示可以让数据结果看起来一目了然.直观生动,只有这样才可以提高企业管理者的决策效率和决 ...

最新文章

  1. InnoDB 存储引擎体系架构
  2. Scrum 项目4.0--软件工程
  3. python后缀名切割_python批量将.xls转化为.xlsx,包括文件名和后缀分割
  4. stl向量_用户定义大小的C ++ STL中的2D向量
  5. python字典怎么添加值_python字典中如何添加键值对
  6. python之序列化与反序列化用法介绍json、pickle
  7. [Ext JS6]工作区-Workspace
  8. 2019-04-02
  9. 射频微电子学_越老越吃香的射频工程师,如何才能成为一个出色的射频工程师?...
  10. Java语言开发的开源商城系统——Javashop简介
  11. WinMTR 0.9.2 绿色免费版
  12. 高通骁龙200、400、600、800处理器规格分享
  13. 10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔
  14. [爬虫项目]猫眼电影TOP100
  15. 【CF724F】Uniformly Branched Trees
  16. 拟合系数 / 决定系数 / R方 / R^2的理解
  17. Java手机验证码的实现
  18. mysql 1045 远程_启用远程mysql连接:错误1045(28000):拒绝用户访问
  19. jfif怎么改成jpg格式
  20. IOS锁屏状态播放音乐时显示专辑信息和图片

热门文章

  1. NNACL2021 放榜啦~
  2. Multi-task Learning and Beyond: 过去,现在与未来
  3. 【硬核课】最新《图卷积神经网络GCN》2020概述,76页ppt,NTU-Xavier Bresson,纽约大学深度学习课程...
  4. 【面经】深度学习算法岗(京东)
  5. 人民日报:研究生期间该懂的47件事,你认可吗?
  6. 【linux】常用命令之scp命令
  7. 深度学习TF—13.对抗生成网络—GAN
  8. 机器学习7-主成分分析
  9. docker打包部署nginx,django应用
  10. 人类视觉计算理论经典著作,豆瓣评分9.7,中文版惊鸿面世