拿到一套安装包方案后,大家通常先要做几件事:换成自己产品的 LOGO,修改名称和版本号,把程序文件放进去,再接上安装完成后的启动、快捷方式等行为。如果还不熟悉 NSIS 和 DuiLib,光是找到这些内容分别放在哪个文件里,就需要花一些时间。
今天介绍一种借助 AI 编程来完成这些操作的方法。nsNiuniuSkin 的解决方案包中,除了脚本、模板和工具,还附带了一份 AGENTS.md。让 AI 先读这份文件,再结合包内文档和现有示例处理需求,就可以更快地开始安装包制作。
下面以 DuiLib 版的 leeqia_simple 模板为例,看看从拿到方案到生成自己的安装包,可以怎样与 AI 配合。
一、先让 AI 看懂解决方案
AGENTS.md 是提供给 AI 的项目工作说明。它把安装包制作中的几个关键问题交代清楚:项目目录怎么组织,改界面应该查什么文档,业务逻辑放在哪里,以及完成后怎样验证。
比如,修改一个按钮时,AI 需要知道的不只是它的颜色和大小,还包括这个按钮有没有绑定安装事件。AGENTS.md 会引导它先查 UI 属性和接口文档,再结合模板修改,减少猜错属性、改断按钮关联的情况。
文档中有这样一段约定:
4. 修改 UI XML
- 页面 XML 放在 `SetupScripts/<project>/skin/`。
- 控件属性先查 `docs/安装包UI属性设置指南.md` 和 `docs/属性列表.xml`。
- 控件 `name` 要稳定,NSIS 脚本会通过控件名绑定事件和设置属性。
- 图片、GIF、背景资源路径要相对皮肤目录可解析。
还有一条针对接口调用的要求:
不要发明不存在的插件接口。所有
nsNiuniuSkin::调用必须能在docs/nsNiuniuSkin接口文档.md中找到。
这样,即使我们还没有系统学过 NSIS 语法和 DuiLib 布局,也可以先把期望的界面和操作行为说清楚,让 AI 按现有方案完成具体修改,再通过实际运行检查结果。
二、打开完整目录,准备好产品资料
在 Codex 中打开解压后的解决方案目录,让 AI 能同时访问根目录的 AGENTS.md、docs/、SetupScripts/ 以及配套打包工具。不要只拿出一份脚本单独开始。
如果使用的是完整源码仓库,这里对应的是其中的 Release/ 目录;如果使用的是导出的解决方案包,直接打开解压后的根目录即可。本文后面的路径,都以这个工作目录为起点。
开始前准备好以下信息就够了:
| 要提供的内容 | 示例或说明 |
|---|---|
| 产品名称、版本号 | 我的应用,1.0.0.0 |
| 主程序文件名 | MyApp.exe,要与实际文件一致 |
| 待安装文件 | 已编译好的程序及运行所需文件,默认放在 FilesToInstall/ |
| 界面素材 | LOGO、安装与卸载图标、宣传配图;有参考设计图也一起提供 |
| 文案与协议 | 产品介绍、安装提示、用户许可协议,以及需要的语言版本 |
| 安装行为 | 默认目录、快捷方式、是否开机启动、安装完成后怎样启动程序 |
资料准备好后,可以先这样告诉 AI。下面的产品名和路径都是示例,使用时换成自己的实际内容:
请先阅读当前目录的 AGENTS.md 和 docs/打包项目说明.md,
确认现有模板、打包入口和文件组织方式。
我要制作"我的应用"的安装包,版本为 1.0.0.0,
主程序是 MyApp.exe,完整程序文件已经放到 FilesToInstall/。
请以 SetupScripts/leeqia_simple 为基础,复制为 myapp 项目。
先列出要修改的文件及用途,再按这些需求完成配置。
已有模板保留,项目特有修改优先放在 myapp 目录内。
如果拿到的方案中没有 leeqia_simple,可以把提示词中的模板名换成包内已有的模板,让 AI 先根据文档确认它是否适合自己的界面。
三、把安装界面换成自己的产品
先看一下简洁模板的安装首页。中间是产品 LOGO、名称和快速安装按钮,底部保留协议入口及自定义选项:

制作自己的安装包时,可以从这几个看得见的地方开始改。AI 会根据需求分别找到图片、XML 布局、产品配置和语言文案,不需要我们逐个记住它们的文件名。
这些内容在当前模板中的位置如下:
| 修改内容 | 对应位置 |
|---|---|
| 产品名称、版本、主程序及默认安装目录 | 项目中的 soft_setup.nsi 及打包入口配置 |
| 安装首页 | skin/configpage.xml |
| 安装进度页、完成页 | skin/installingpage.xml、skin/finishpage.xml |
| LOGO、轮播配图等 | skin/images/ |
| 安装与卸载图标 | 项目目录中的 logo.ico、uninst.ico |
| 中英文文案 | LanguageFiles/lang_msg_2052.ini、lang_msg_1033.ini |
例如,可以把素材交给 AI,再提出这样的要求:
请按 AGENTS.md 的要求,修改 myapp 项目的安装界面。
使用我提供的 LOGO 和图标,保留简洁模板的白色背景,
把主要按钮改成品牌蓝色,产品名称使用"我的应用"。
保留快速安装、自定义安装目录和协议入口。
安装进度页使用我提供的产品配图及两组介绍文案,
保留原有的轮播布局和真实安装进度显示。
如果项目启用了中英文,两种语言的文案一起更新。
请先查 UI 属性指南;保留现有按钮、路径输入框和进度条的 name,
同时检查已有的 @1.5x、@2x 图片,避免放大后仍显示旧 LOGO。
这里特别提到控件 name,是因为它关系到界面与脚本的连接。例如 btnInstall 对应安装按钮,editDir 是安装目录输入框。外观可以调整,名称随意改掉后,原来的事件或取值逻辑就可能找不到控件。
安装进度页的示例效果如下。图片与文字分别配置,换产品介绍时,可以让 AI 同时调整配图、文案及其位置。图中的宣传文字属于模板演示内容,使用时应替换成自己产品的实际介绍。

四、把安装行为接到自己的程序上
界面换好后,还要让安装包真正服务于自己的软件。比如文件安装到哪里,桌面快捷方式指向谁,安装完成后点击按钮启动哪个程序,以及卸载时哪些数据需要保留。
这些需求直接用日常语言说清楚即可。延续前面的例子,可以继续发送:
请继续完成 myapp 的安装业务配置:
1. 安装 FilesToInstall/ 内完整的程序文件,主程序为 MyApp.exe。
2. 默认创建桌面快捷方式,允许用户取消;默认不开机启动。
3. 安装完成后,点击完成页的启动按钮才打开 MyApp.exe。
4. 卸载时清理安装文件和快捷方式,用户生成的数据需要保留;
请先根据程序实际的数据目录给出清理范围,路径不明确时问我。
请查阅接口文档和现有回调,优先复用已有能力。
项目扩展优先放在 customize.nsh;如果某项行为由公共脚本控制,
请先说明现有调用关系,再选择对其他模板影响最小的接入方式。
不要重复定义已有函数,也不要凭空编写插件接口。
需要留意,customize.nsh 是项目扩展的位置,但并不意味着所有回调都已经定义在其中。例如当前模板的部分安装和完成逻辑位于公共 setup_control.nsh,应让 AI 先找到真实调用位置,再决定怎样接入。
如果业务中还涉及安装前检查、依赖安装、在线下载等内容,也按"触发时机、输入信息、成功与失败后怎样处理"说明需求。拿不准的接口和参数,让 AI 回到包内文档查询。
五、让 AI 完成打包,并交代验证结果
修改完成后,还可以继续让 AI 执行打包,不必再手工寻找每个工具的调用方法:
请根据 AGENTS.md 检查 myapp 的脚本、图片、语言文件和待安装文件,
生成一个便于重复使用的打包入口,并实际执行。
本次先制作本地测试用的 nozip 安装包,使用 package.py 时
明确设置 package_mode=2、need_sign=False,关闭 TEST_SLEEP 演示延时。
输出名称为 MyApp_Setup_1.0.0.exe。
请核对当前脚本的真实参数与文件覆盖行为,
不要把示例产品的名称、目录或主程序名带入结果。
完成后告诉我生成文件的位置、以后重复打包的命令,
以及哪些项目已经验证、哪些还需要实际安装检查。
方案中的 prepare.bat 用于准备皮肤包、语言文件和安装文件等内容,最终安装包通常输出到 Output/。如果采用已有的 build-*.bat,要先看清其中的配置:部分入口会执行签名,并在打包结束后启动安装器。
另外,pre_define.nsh 和 skin.zip 属于流程生成或覆盖的内容。产品配置应落实到对应入口,界面修改应落实到 skin/ 源文件,避免这次改好、下次打包又恢复了。
生成 EXE 后,建议在测试环境走一遍完整流程:
- 查看首页、协议、路径选择和语言切换,确认名称、图片与文案都已替换。
- 实际安装,检查文件位置、进度显示和快捷方式。
- 从完成页启动主程序,确认目标文件及启动行为正确。
- 检查卸载结果,确认用户数据按约定保留。
- 有多语言或高 DPI 使用场景时,再检查对应显示效果。
发现问题时,把具体页面截图、期望结果或编译错误交给 AI,要求它沿着现有文档和脚本继续定位。这样一次只处理一个明确问题,修改结果也更容易核对。
结语
有了随方案附带的 AGENTS.md,我们可以从"我希望安装包怎样显示、怎样工作"开始,把查目录、查接口、改脚本和运行打包的工作交给 AI 协助完成。对于还不熟悉 NSIS 和 DuiLib 的朋友,先从现有模板换 LOGO、改文案开始,再逐步接入业务,是一个容易上手的做法。
愿天下没有难做的安装包!