云计算百科
云计算领域专业知识百科平台

NSIS 打包超 4GB 进阶:编译 NSISBI 源码,自定义数据文件后缀名

当 NSIS 安装包超过 4GB 时,需要借助 NSISBI 来打包。默认情况下,NSISBI 会把安装程序和数据文件分开,生成:
1一个 xxx.exe 安装程序
2一个 xxx.nsisbin 数据文件
如果你想把 .nsisbin 改成自定义后缀(例如 .dat),就需要下载 NSISBI 源码,修改后重新编译。下面是完整步骤。

在这里插入图片描述

一、修改源码

  • 下载并打开源码
    从 NSISBI 项目页下载源码包(如 nsis-code-7423-3-NSIS-trunk.zip),解压后用 Visual Studio Code 打开。

  • 全局替换后缀
    在 VS Code 中按 Ctrl+Shift+F 打开全局搜索:

  • 搜索:.nsisbin
    替换为:你想要的后缀,比如 .dat

    然后点击「全部替换」。

    在这里插入图片描述

    从截图可以看到,搜索 .nsisbin 后共命中 362 个结果,分布在 76 个文件中。替换操作会一次性更新所有引用位置,包括:

    • Source\\exehead\\fileform.c(核心文件格式处理逻辑)
    • nsisconf.nsh(编译配置) 以及若干
    • confest_*.nsisbin 测试文件

    注意:截图里替换框显示的是 dat(没有点),建议写成 .dat(带点),避免后缀拼接时出现 xxxdat 这种错误格式。替换前最好确认一下原文是 .nsisbin 还是 nsisbin,按实际匹配结果填写。

    二、编译 NSISBI

    修改完源码后,需要重新编译才能生效。

    1,准备编译环境
    工具要求说明

    • Python,2.7 或以上,官网下载,安装后配置环境变量
    • SCons,1.2.0 或以上,控制台执行 pip install scons
    • Zlib,1.2.4 或以上,下载解压到任意目录,设置环境变量

    zlib 环境变量设置示例:
    代码:

    bash
    set ZLIB_W32=C:\\Dev\\zlib-1.2.7

  • 执行编译
    以管理员身份打开新的控制台,切换到 NSISBI 源码目录,运行:
    代码:
  • bash
    scons SKIPUTILS="NSIS Menu" PREFIX="C:\\Program Files (x86)\\NSIS" install

    其中 PREFIX 参数指定编译产物的安装目录,可按需修改。

  • 编译产物
    编译完成后,目录结构大致如下:
  • 在这里插入图片描述

    可以看到生成了完整的 NSIS 目录结构:

    • Bin、Contrib、Docs、Examples
    • Include、Plugins、Stubs
    • makensis.exe(主程序)
    • makensisw.exe(带界面的编译器)
    • nsisconf.nsh(NSIS Header File)

    三、安装与使用
    1,将编译完成的 NSISBI 产物复制到你的 NSIS 安装目录(如 C:\\Program Files (x86)\\NSIS);
    2,选择替换全部相同文件;
    3,之后使用 makensis xxx.nsi 打包,生成的数据文件后缀就会变成你修改后的名称(例如 .dat)。

    四、补充说明
    1,NSISBI 通过将安装数据分离到外部文件来突破 2GB 限制。默认情况下,当安装包超过 4GB 时会自动启用外部文件模式。

    2,可以使用 OutFileMode 指令强制控制行为:
    OutFileMode data:强制始终生成外部数据文件;
    OutFileMode auto(默认):超过 4GB 时才自动切换。

    3,NSISBI 3.12.1 及更新版本已支持将超大安装包分割为多个数据文件(例如 3 个文件共 8GB),如有此需求可升级到相应版本。

    更多安装包制作过程中遇到的问题解决方法,可以进入我的主页查看。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » NSIS 打包超 4GB 进阶:编译 NSISBI 源码,自定义数据文件后缀名
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!