NeeView开发者指南:如何搭建开发环境并参与这个开源图片查看器的贡献
【免费下载链接】NeeViewAn image viewer that allows you to browse images in folders and compressed files like a book. Powerful customization is available.项目地址: https://gitcode.com/gh_mirrors/ne/NeeView
NeeView 是一款强大的 Windows 开源图片查看器,能把文件夹和压缩文件里的图片像翻书一样连续浏览。本文是一份完整的 NeeView 开发者指南,手把手教你用 Visual Studio 2022 搭建开发环境、读懂项目结构,并通过语言翻译、单元测试快速参与这个开源图片查看器的贡献。
📖 认识 NeeView:像翻书一样浏览图片的开源查看器
NeeView 的核心理念,是把散落在文件夹和压缩包里的图片,组织成一本可以"翻阅"的书。它不只是看图,更强调高度可定制:从按键、鼠标手势到触摸操作,几乎每个交互都能重定义。
| 能力 | 说明 |
|---|---|
| 图片格式 | bmp、jpg、gif、tiff、png、ico 及 WIC 图片 |
| 压缩文件 | zip、rar、7z、lzh、cbr、cbz、cb7,并支持递归解包 |
| 多媒体 | PDF 浏览、视频播放、幻灯片放映 |
| 交互 | 触摸操作、鼠标手势、按键/手势自定义、拖拽移动/旋转/缩放 |
| 扩展 | Susie 插件、从浏览器拖入图片、脚本扩展命令 |
理解这些特性,有助于你在后续定位功能代码时知道"它在 NeeView 的哪个模块里"。
🛠️ 搭建 NeeView 开发环境的完整步骤
⚠️ NeeView 是 Windows 桌面程序,请在64 位 Windows 10 或更高系统上开发。
1️⃣ 准备工作清单
| 组件 | 要求 | 用途 |
|---|---|---|
| 操作系统 | Windows 10 64bit 或更高 | 运行与调试 |
| 开发工具 | Visual Studio 2022 | 主 IDE |
| 工作负载 | .NET 桌面开发 | 编译 WPF 主程序 |
| 工作负载 | C++ 桌面开发 | 编译 NeeView.Interop 互操作层 |
NeeView 主程序是一个WPF 应用,目标框架为 .NET,定义见 NeeView.csproj(net9.0-windows且UseWPF=true)。
2️⃣ 获取源码并打开解决方案
git clone https://gitcode.com/gh_mirrors/ne/NeeView克隆完成后,用 Visual Studio 2022 打开解决方案文件 NeeView.sln。首次打开时,Visual Studio 会自动还原 NuGet 包(PDFium、MagicScaler、SQLite 等依赖见 NeeView.csproj)。
3️⃣ 首次构建并运行
- 在工具栏将配置切换为Debug、平台Any CPU。
- 右键
NeeView项目 →设为启动项目。 - 按
F5启动,即可在本地跑起一个可调试的 NeeView 图片查看器。
💡 调试时选择x64平台可获得与发布版本一致的运行行为。
🗂️ 快速看懂 NeeView 项目结构与核心模块
NeeView 采用多项目解决方案,主程序与工具库分离。理解这张地图,是贡献代码的第一步。
| 项目 | 角色 |
|---|---|
| NeeView | 主程序(WPF 应用),几乎全部 UI 与业务逻辑在此 |
| NeeLaboratory.Runtime | 通用运行时工具(组件模型、IO、线程) |
| NeeLaboratory.SourceGenerator | 编译期源码生成器 |
| NeeView.Susie / Susie.Server | Susie 图像插件支持与宿主服务 |
| SevenZipSharp | 7z 等压缩格式解包 |
| AnimatedImage | 动图渲染支持 |
| Vlc.DotNet | 视频播放 |
| NeeView.UnitTest | xUnit 单元测试 |
| NeeView.Interop | C/C++ 互操作层 |
📌 主程序内部按功能划分目录,例如
Book/(书籍与页)、ViewContents/(视图)、SidePanels/(侧栏)、Command/(命令系统)。找到"功能→目录"的对应关系,能快速缩小代码定位范围。
🌍 第一次贡献:为 NeeView 贡献语言翻译(最友好的入口)
对新手最友好的切入点,是语言文件。它不碰核心逻辑,却能直接让全球用户用上自己的语言。
1️⃣ 认识 .restext 语言文件
语言资源统一放在NeeView/Languages/目录,采用UTF-8编码,格式为Key=Text。例如 zh-Hans.restext 就是简体中文资源。常用规则:
{0}会被程序参数替换,如Page={0} pages@Key可引用另一条资源,避免重复Key:+ 正则 可选取不同的复数表达- 未定义的键会自动回退到英文
en.restext
完整格式说明见 Languages/README.md。
2️⃣ 本地测试你的翻译
- 使用 ZIP 版 NeeView。
- 把你创建的
.restext放入Languages文件夹。 - 重启 NeeView,在"设置 → 语言"中即可选中新语言。
3️⃣ 提交 Pull Request
确认无误后,将.restext新增或修改提交 Pull Request 即可。这是零风险、易合并的首次贡献,非常适合作为入门练习。
🔧 需要批量处理时可借助 ConvertRestext.ps1,在
.restext与 JSON 之间互转(可选工具)。
🧪 跑起 NeeView 单元测试,让改动更可靠
修改代码前,先确保测试全绿,是最稳妥的习惯。NeeView 使用xUnit框架,测试集中在 NeeView.UnitTest 项目,依赖见 NeeView.UnitTest.csproj。
在 Visual Studio 中打开测试资源管理器,选择 NeeView.UnitTest 并点击运行所有测试。常见测试覆盖文件树(FileTreeTest)、节点(NodeTest)等核心数据结构。
✅ 建议:每次改动后跑一遍测试;若发现缺口,补一个测试用例也是很有价值的贡献。
🌿 理解分支与版本策略:贡献前必知
分支策略(详见 README.md):
master— 主开发分支,Pull Request 基本都提交到这里。version-XX— 每个主版本的维护分支,用于维护当前大版本。
版本策略:
- 有功能新增或变更→ 升级主版本
- 无功能变更(如 bug 修复) → 升级次版本
- 构建版本自动分配为提交数,内部使用不公开
🎯 记住一点:新功能与修复都提交到
master,版本号的细节由维护者按上述规则处理。
📦 进阶:打包与发布(可选)
当你熟悉项目后,可以尝试本地打包。发布由 PowerShell 脚本 MakePackage.ps1 驱动,依赖Wix Toolset与pandoc,支持Zip、Installer、Appx等目标:
# 示例:生成所有发布包(需要预先安装依赖工具) pwsh .\MakePackage\MakePackage.ps1📝 打包脚本较复杂,建议先通过语言翻译和单元测试热身,再挑战发布流程。
✍️ 写在最后
搭建 NeeView 开发环境只需三步:装好 VS 2022 双工作负载 → 克隆并打开 NeeView.sln → 按 F5 运行。真正的贡献之路,可以从最友好的语言翻译起步,用单元测试护航你的每一次改动,再逐步深入到 WPF 视图与命令系统。
从翻译一个按钮文案,到修复一个翻页 bug,每一份贡献都在让这个开源图片查看器变得更好。打开 NeeView,翻开属于你的第一页吧。
【免费下载链接】NeeViewAn image viewer that allows you to browse images in folders and compressed files like a book. Powerful customization is available.项目地址: https://gitcode.com/gh_mirrors/ne/NeeView
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考