-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Ling edited this page Jul 22, 2026
·
6 revisions
当前插件系统以 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
-> 输出应用结果、失败原因和冲突顺序
插件可以使用边界注入、指令注入、调用重定向、参数或局部变量修改、常量修改、私有成员访问和方法覆盖。主程序增加新类型或新方法时,不需要先增加一层插件专用扩展接口,插件可以直接声明目标。
- 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、依赖、兼容性、市场、安装和更新实现。