Files
personal-toolbox/docs/development.md
home-PC 26a22eef1c feat: 统一项目命名并补充路径失效报告
将内部项目目录、命名空间、配置目录、自启注册表值和设计/开发文档统一为 PersonalToolbox。

扩展路径校验服务,输出失效工具、字段、原因和路径,并在启动日志、设置页路径检查与导入配置流程中展示明细报告。

验证:dotnet build PersonalToolbox.sln
2026-05-27 14:20:19 +08:00

5.1 KiB
Raw Blame History

个人工具箱开发文档

当前项目状态

  • 项目名称Personal Toolbox / PersonalToolbox
  • 技术栈WPF + .NET 8 + C#
  • 架构方向MVVM 分层UI 层通过 ViewModel 调用服务层
  • 当前阶段MVP 基础版本已搭建,可编译运行
  • 主要入口:src/PersonalToolbox/MainWindow.xaml
  • 配置目录:%AppData%\PersonalToolbox

已实现能力

  1. 基础工程

    • PersonalToolbox.sln
    • src/PersonalToolbox/PersonalToolbox.csproj
    • WPF 桌面应用,启用 WinForms 托盘能力
    • 内部命名空间、项目路径、启动项名称和配置目录已统一为 PersonalToolbox
  2. 数据与配置

    • 本地 JSON 配置读写
    • 原子写入:先写 .tmp,再替换正式文件
    • 配置文件:
      • appsettings.json
      • categories.json
      • tools.json
      • autorun.json
      • icons/
    • 导入、导出、重置配置基础能力
    • 路径失效检查会输出具体工具、字段、原因和路径
  3. 工具模型

    • 系统工具
    • 本地工具
    • 网址工具
    • 组合工具
    • 一级分类
    • 自动运行项
    • 快捷键配置和状态
  4. 默认系统工具

    • 首次创建系统工具分类和未分类
    • 内置记事本、计算器、任务管理器、控制面板、设置、Windows 更新、设备管理器、磁盘管理、服务、注册表、网络连接和应用列表
    • 设置页支持补回缺失默认系统工具
  5. 启动服务

    • 所有入口统一走 ToolLaunchService
    • 本地工具使用 Windows Shell 打开
    • 网址使用默认浏览器打开
    • 系统工具使用内置启动目标
    • 支持管理员启动配置
    • 启动结果输出到底部信息区
  6. 组合与自动运行

    • 组合成员引用已有工具或组合
    • 支持成员启用、禁用、排序、间隔
    • 支持失败后继续或停止
    • 保存前检测循环引用和展开后重复工具
    • 自动运行列表从工具自身 AutoRunEnabled 动态汇总
  7. 托盘、自启和快捷键

    • 托盘常驻服务
    • 托盘菜单:显示/隐藏主界面、全局快捷键开关、设置、退出
    • 关闭窗口时隐藏到托盘
    • 当前用户开机自启,注册表值名为 PersonalToolbox
    • 全局快捷键注册、注销、内部冲突和注册失败提示
  8. 界面

    • 顶部搜索和操作按钮
    • 左侧一级分类
    • 右侧工具卡片网格
    • 底部信息输出区
    • 工具编辑窗口
    • 组合编辑窗口
    • 设置窗口
    • 主要 UI 元素均提供 ToolTip 悬浮说明

最近开发记录

2026-05-27

  • 将项目内部名从旧临时代号统一更改为 PersonalToolbox包括目录、项目文件、命名空间、XAML 类名、配置目录、自启注册表值和导出文件名。
  • 设计文档中的临时代号和 AppData 路径同步改为 PersonalToolbox
  • 路径失效检查从单纯数量扩展为明细报告,设置页导入配置后也会提示具体失效工具。
  • 验证命令:dotnet build PersonalToolbox.sln,结果为 0 警告、0 错误。

运行与验证

构建:

dotnet build PersonalToolbox.sln

运行:

dotnet run --project src\PersonalToolbox\PersonalToolbox.csproj

当前验证结果:

dotnet build PersonalToolbox.sln
0 个警告
0 个错误

目录说明

src/PersonalToolbox
├─ Commands       命令封装
├─ Models         工具、分类、组合、配置、日志等模型
├─ Services       配置、启动、托盘、自启、快捷键、路径校验等服务
├─ ViewModels     主界面和卡片视图模型
└─ Views          编辑、组合、设置和提示窗口

开发需知

  • 不要绕过 ToolLaunchService 写启动逻辑。
  • 组合只保存成员工具 ID不复制工具内容。
  • 普通错误优先输出到底部信息区,只有删除、导入覆盖、重置、退出等操作使用确认弹窗。
  • 默认系统工具只在首次配置创建或用户主动恢复时补回,避免覆盖用户删除/隐藏意图。
  • 所有新增可交互 UI 控件都应提供 ToolTip
  • 配置写入必须保持原子写入策略,避免中途失败写坏 JSON。
  • 快捷键必须包含至少一个修饰键,不支持纯单键快捷键。
  • 开机自启只写当前用户注册表,不要求管理员权限。
  • 本项目尚未投入使用,不需要维护旧临时代号对应配置目录的兼容迁移。

Git 记录约定

提交信息使用 Conventional Commits 格式,并使用中文说明标题和正文:

feat: 添加某项用户能力

说明本次变更做了什么、为什么这样做,以及是否影响数据结构或用户行为。

常用类型:

  • feat: 新功能
  • fix: 修复问题
  • docs: 文档
  • chore: 构建、仓库、维护类变更
  • refactor: 不改变行为的重构
  • test: 测试相关

后续优先事项

  1. 自动图标提取和轻量内置图标库。
  2. 更完整的图标选择器和分类图标编辑。
  3. 更细的快捷键录入控件,减少手写格式错误。
  4. 拖拽调整卡片和分类顺序。
  5. UI 视觉打磨和深浅色主题。
  6. 为组合校验、快捷键解析和配置读写增加单元测试。