.NET 10 · WPF · 插件化

MToolbox

一款轻量、可扩展的 Windows 工具箱。基于 AssemblyLoadContext 插件架构, 支持热加载与热更新,无需重启即可升级功能模块。

下载客户端 API 文档
4
可用插件
1.1.0.0
最新版本
.NET 10
运行时
热更新
部署模式

核心特性

围绕"轻量化 + 可扩展"的设计理念构建

插件化架构

每个工具独立打包为 DLL,通过 PluginManager 动态发现与加载,模块之间零耦合。

静默热更新

后台轮询服务端清单,检测到新版本自动下载、卸载旧 Assembly、加载新 DLL,UI 自动刷新。

Assembly 隔离

每个插件运行在独立的 AssemblyLoadContext 中,卸载时 GC 可完全回收内存,无泄漏风险。

系统信息

通过 WMI 查询 CPU、内存、磁盘、网络等硬件信息,实时监控 Windows 运行状态。

单文件 Web 服务

更新服务器压缩为单个 linux-x64 自包含二进制,上传即可运行,零外部依赖。

低门槛开发

新建 WPF 类库、实现 IToolPlugin 接口、编译输出到 Plugins 目录即完成一个插件。

架构一览

三层结构:WPF 主程序 → 插件管理 → Linux 更新服务

  ┌─────────────────────────────────────────────────────────────────┐
                        MToolbox.WebServer  (Linux · 单文件)          
    GET /api/plugins/manifest  ← 版本清单                      
    GET /plugins/{id}.dll       ← 插件下载                      
    GET /shell/MToolbox.exe     ← 主程序下载                    
  ├─────────────────────────────────────────────────────────────────┤
                       UpdateService                            
    定时轮询 → 版本比较 → HTTP 下载 → 替换 DLL → 热切换        
  ├─────────────────────────────────────────────────────────────────┤
                       PluginManager                            
    Discover() → Load() → Unload() →  UI 刷新                   
  ├─────────────────────────────────────────────────────────────────┤
                       PluginLoadContext                         
    AssemblyLoadContext 隔离 · 可回收 · 无泄漏                   
  ├─────────────────────────────────────────────────────────────────┤
    MToolbox.Shell  (WPF · win-x64 · 单文件)                    
    MainWindow → MainViewModel → Plugin Views                   
  └─────────────────────────────────────────────────────────────────┘

可用插件

当前服务端已发布的插件及版本

MToolbox.Plugin.Firewall
v1.0.0
35.0 KB 下载
MToolbox.Plugin.QuickActions
v1.1.0
13.5 KB 下载
MToolbox.Plugin.Sample
v1.0.0
8.5 KB 下载
MToolbox.Plugin.SystemInfo
v1.0.0
11.0 KB 下载

下载客户端

MToolbox 客户端

Windows · v1.1.0.0 · 165.7 MB
下载 MToolbox.exe

API 参考

客户端 UpdateService 对接的 HTTP 端点

方法 路由 说明
GET /api/plugins/manifest 插件版本清单 JSON
GET /api/shell/version 主程序版本信息
GET /api/health 服务健康检查
GET /plugins/{filename} 下载指定插件 DLL
GET /shell/{filename} 下载主程序文件