最新消息:关注人工智能 AI赋能新媒体运营

NSIS v3.12 绿色版:Nullsoft 脚本安装系统

电脑软件 admin 浏览

NSIS:轻量级、开源、企业级的Windows安装包制作神器

NSIS(Nullsoft Scriptable Install System)是由 Winamp 的开发团队 Nullsoft 推出的开源、脚本驱动型 Windows 安装程序生成工具,自 2000 年发布以来,已成为全球开发者构建 Windows 安装包的首选方案之一。基于 zlib 开源协议,NSIS 完全免费,无任何授权费用,支持商业用途,可自由修改、分发与二次开发,是个人开发者、中小企业乃至大型软件公司(如 VLC Media Player、7-Zip、Notepad++ 等均使用 NSIS 打包)的理想选择。

与 InstallShield、Inno Setup 等商业或半开源工具相比,NSIS 以极致轻量、高度可控和超强兼容性著称。其生成的安装包通常仅几百 KB,远小于传统安装器的数十 MB,同时支持从 Windows 95 到 Windows 11、Server 2003 至 Server 2022 的全系列系统,完美适配 32 位与 64 位架构,是维护老旧系统部署环境的“终极解决方案”。

核心功能:从安装到卸载,全流程精准掌控

NSIS 不仅是一个“打包工具”,更是一个完整的安装系统开发平台。其核心能力包括:

  • 独立可执行安装包:编译后生成单一 EXE 文件,无需依赖运行时库,自带完整卸载程序(Uninstaller),支持“安装-修复-卸载”三态操作,一键清理注册表、文件与快捷方式。
  • 精细文件与系统管理:支持文件复制、解压(ZIP、7z、自定义压缩)、覆盖策略控制、目录创建、权限设置(UAC 提权)、快捷方式创建(开始菜单、桌面、启动项)、环境变量写入(PATH)、服务安装/启动/停止(通过插件)。
  • 注册表与配置文件操作:可读写 HKEY_LOCAL_MACHINE 与 HKEY_CURRENT_USER 下任意键值,支持 .ini、.cfg、.json 等配置文件的动态修改,实现个性化部署。
  • 多语言与 Unicode 支持:内置 60+ 语言包(含中文简体/繁体、英文、日文、俄文等),支持 UTF-8 和 UTF-16 编码,一个安装包即可实现全球部署,无需多版本分发。
  • 智能组件选择:支持树形组件选择界面(如“基础功能”“高级功能”“文档”),用户可自定义安装内容,开发者可按选择动态加载文件,大幅减少用户磁盘占用。
  • 静默与无人值守安装:支持 /S(静默)、/D=(指定安装路径)、/R(恢复安装)等命令行参数,完美适配企业 SCCM、Intune、Ansible 等批量部署系统。
  • CRC32 / SHA-256 校验:内置完整性校验机制,防止安装包被篡改或下载中断,保障分发安全。

脚本引擎:强大灵活,媲美编程语言

NSIS 的核心是其强大的脚本语言,语法类似 C / Pascal,支持:

  • 变量与数组($0~$9$R0~$R9、自定义字符串数组)
  • 条件判断(IfFileExistsStrCmpIntCmp
  • 循环结构(LoopWhile
  • 字符串处理(截取、拼接、替换、大小写转换)
  • 预处理器(!define!if!include)实现条件编译,便于维护多版本脚本
  • 逻辑库(LogicLib)提供 StartsWithEndsWithContainsIsLowerCaseIsUpperCase 等现代化字符串操作函数(NSIS 3.12 新增)

开发者可通过编写脚本实现:

  • 自动检测已安装版本并执行升级/覆盖/跳过
  • 检查 .NET Framework、Visual C++ 运行库、Java 等依赖项并自动下载安装
  • 弹出许可协议、用户信息收集、安装进度条自定义
  • 安装后执行自定义脚本(如注册 COM 组件、配置防火墙规则)

插件生态:突破限制,实现企业级扩展

NSIS 的真正强大在于其丰富的插件体系。通过调用 DLL 插件,可轻松扩展原生功能:

  • HTTP/FTP 下载:使用 nsisdlWebGet 插件,在安装过程中动态下载组件(如离线包、语言包、补丁),实现“最小安装 + 按需下载”模式。
  • 注册表高级操作:如 RegDLLRegistry 插件支持批量导入 .reg 文件、读取多值键。
  • 系统服务控制:通过 ServiceControl 插件安装、启动、停止 Windows 服务(如数据库、后台进程)。
  • 补丁与更新:集成 NSIS Update 或自定义脚本,实现自动检查新版本并提示下载。
  • 数据库支持:通过 SQLite 插件直接读写 SQLite 数据库,适用于配置中心类软件。
  • Win32 API 调用:使用 CallWindowProcSystem::Call 直接调用 Windows API,实现自定义对话框、系统托盘图标、UAC 提权等高级交互。

官方插件库(nsis.sourceforge.io/plugins)收录超 200 个高质量插件,社区持续维护,生态活跃。

极致优化:压缩效率与体积控制的标杆

NSIS 支持三种主流压缩算法:

  • Zlib:默认选项,速度快,压缩率适中
  • Bzip2:压缩率更高,速度中等
  • LZMA:压缩率最高(通常比 ZIP 小 30%~70%),解压速度略慢,但对网络分发和移动设备部署极为友好

支持“固实压缩”(Solid Compression),将所有文件打包为单一压缩流,进一步减小体积。例如,一个包含 50MB 文件的安装包,使用 LZMA 固实压缩后可压缩至 15MB 以内,远低于 Inno Setup 的 25~40MB 水平,显著降低带宽成本与用户等待时间。

最新动态:NSIS 3.12 强力升级(2026年4月发布)

最新版本 NSIS 3.12(2026年4月19日发布)带来多项关键改进:

  • 安全增强:修复了高权限安装时可能被利用的低完整性级别临时目录漏洞(CVE-2026-XXXX,由安全研究员 Richard Warren 披露),提升 SYSTEM 权限下的安全性,符合企业安全审计标准。
  • 脚本语法现代化:LogicLib 新增 StartsWith[S]EndsWith[S]Contains[S]IsLowerCaseIsUpperCase 等字符串判断函数,大幅提升脚本可读性与开发效率。
  • 构建系统兼容性:重新支持 Python 2.7 及 3.5 以下版本(修复 bug #1325),便于在老旧 CI/CD 环境中稳定构建。
  • ARM64 初步支持:makensis.nsi 开始支持 ARM64 架构编译(补丁 #318),为未来 Windows on ARM 设备(如 Surface Pro X、Surface Neo)做好技术储备。

NSIS 项目持续活跃,GitHub 仓库(github.com/nsis/nsis)拥有超 6,000 stars,每月均有提交更新,社区响应迅速,是真正“活着”的开源项目。

为什么选择 NSIS?——开发者与企业的共同之选

  • 零成本:完全免费商用,无隐藏收费、无许可证绑定,适合初创公司与开源项目。
  • 超轻量:安装包体积小,下载快,适合低带宽地区与移动分发。
  • 全兼容:从 Windows 95 到 Windows 11、Server 2022,一包通吃,降低维护成本。
  • 深定制:脚本驱动一切,可实现任何你想象得到的安装逻辑。
  • 企业级部署:静默安装 + 命令行参数 + 批量脚本,完美融入 SCCM、Intune、PDQ Deploy、Ansible 等自动化体系。
  • 活跃社区:Stack Overflow、NSIS 论坛、GitHub Issues 拥有海量解决方案,问题可快速解决。

无论是开发一个小型工具、驱动程序,还是为企业部署上百台终端的内部软件,NSIS 都是性价比最高、最可靠的选择。它不华丽,但绝对可靠;它不炫技,却能胜任最严苛的部署场景。如果你正在寻找一个“能用、好用、一直能用”的安装工具,NSIS 就是你需要的答案。

选择下载方式