资源包分析工具原本偏向交互式使用。为了处理批量扫描、更新比较和自动化解包,需要把核心能力抽成 Windows CLI,让同一套服务既能被界面调用,也能被命令行调用。
项目概览
项目仓库:logue/NgsPacker。
结构上,NgsPacker.Cli 负责参数分发,NgsPacker.Core 提供扫描、快照存储、差异比较、目录导出和 ICE 解包服务。命令覆盖 scan、list、catalog、diff、unpack 等任务。
用途是把图形界面的资源分析能力转为批处理工具。应用场景包括版本更新后自动扫描、生成成员目录、比较资源变化、批量解包目标文件。
命令设计
CLI 覆盖四类任务:扫描资源包、生成成员目录、比较两个快照、批量解包目标文件。命令入口只负责参数解析和错误输出,实际逻辑放在 Core 服务中。
扫描结果输出为 JSON 或 CSV。资源成员使用包 ID、成员名、大小、修改时间和 SHA256 描述。比较命令读取两个快照,输出新增、删除和变化成员,便于判断一次客户端更新影响了哪些资源。
测试方式
测试使用小样本资源包和固定快照,覆盖命令参数、输出格式、错误码和比较结果。批量解包任务会验证目标目录结构和文件数量,避免只检查进程退出码带来的遗漏。
实现原理是将资源包读取、成员枚举、SHA256 扫描、CSV 目录输出和 ICE 解包封装为 Core 服务,CLI 只负责把命令参数转换成服务调用。测试层覆盖命令参数、CSV 输出、批量解包和差异结果。