Skip to content
Ling edited this page Jul 22, 2026 · 6 revisions

PCL Nex 插件开发 Wiki

当前插件系统以 PCL.Mixin 为唯一公共扩展模型。启动器从 PCLX 包读取 plugin.json,按依赖顺序装载插件程序集,再读取一个或多个 Mixin 配置并把修改应用到 PCL.Core、启动器主程序集或已经加载的前置插件代码。

PCL.Mixin 直接编译在 PCL.Core.dll 中。插件作者应引用目标启动器版本生成的 PCL.Core.dll,并在包清单和市场清单中记录该版本的 pclCoreVersion

当前架构

PCLX 插件包
  -> 校验 plugin.json、路径、依赖和 pclCoreVersion
  -> 按前置依赖拓扑顺序装载程序集
  -> 读取 Mixin 配置
  -> 扫描 [Mixin] 类型与操作 Attribute
  -> 解析目标类型、目标方法和 IL 注入点
  -> 按优先级应用 Patch
  -> 输出应用结果、失败原因和冲突顺序

插件可以使用边界注入、指令注入、调用重定向、参数或局部变量修改、常量修改、私有成员访问和方法覆盖。主程序增加新类型或新方法时,不需要先增加一层插件专用扩展接口,插件可以直接声明目标。

推荐阅读顺序

  1. 快速开始
  2. 插件包结构
  3. C# 与 PCL.Core 引用
  4. Mixin API 参考
  5. 注入点与修改操作
  6. Manifest、依赖与 Logo
  7. 插件市场与发布清单
  8. 构建、打包与安装
  9. 调试、安全与兼容性

设计边界

  • Harmony 是 PCL.Mixin 的内部实现。公共 API 不暴露 Harmony 的 Prefix、Postfix、Finalizer 或 Transpiler 类型。
  • Core 管理插件依赖、版本、程序集共享和加载顺序。前置插件可以实现 Bridge,并通过公开程序集向依赖插件提供服务。
  • Mixin 会在启动器进程内执行任意 .NET 代码。插件商店的开发者身份、SHA-256 和来源提示降低风险,但不构成沙箱。
  • 安全模式可跳过全部第三方 Mixin;正常模式下 required 失败会禁用插件,optional 失败只记录并继续。

代码来源

  • PCL2-Nex 仓库
  • PCL.Core/Mixin/:公共 Attribute、配置模型、目标解析和运行时实现。
  • PCL.Core/App/Plugins/:PCLX、依赖、兼容性、市场、安装和更新实现。

Clone this wiki locally