Skip to content

Loader 概览 ​

StudioModLoader.dll 是框架的运行时中枢。Studio 启动时它最先醒来,负责把整个框架撑起来,然后把控制权交还给 Studio。

职责 ​

模块做什么
Bootstrapper启动引导:注册依赖解析器、创建全局宿主、应用核心补丁
LoaderManager扫描 Mods/ 目录、实例化插件、托管 F10 控制台
MenuInjector在顶部菜单栏注入 Mods 下拉菜单
FrameworkUpdateService检查与安装框架自身更新(内测版)
TelemetryService匿名遥测上报(仅内测版构建)

启动链路 ​

text
Studio.exe 启动
      │
      ▼
Studio.Startup.dll → InitializationSequenceService.Initialize()
      │  ← Installer 在这里插入了 Bootstrapper.Initialize() 调用
      ▼
Bootstrapper.Initialize()
      ├─ 注册全局程序集解析器
      ├─ 创建 [StudioModLoader] 全局 GameObject(DontDestroyOnLoad)
      ├─ 挂载 LoaderManager
      └─ 应用核心补丁
      │
      ▼
LoaderManager 扫描并加载插件 → 注入 Mods 菜单 → 等待 F10

插件扫描路径 ​

Loader 按顺序扫描以下目录,每个目录还会再检查第一层子目录:

  1. <Studio 安装目录>\Mods\
  2. %LOCALAPPDATA%\Studio 2.0\Mods\

子目录形式让插件可以把自己的依赖 DLL 放在一起,例如:

text
Mods/
  YourMod/
    YourMod.dll
    YourMod.Dependency.dll

加载流程 ​

对每个找到的插件程序集:

  1. 扫描 StudioPlugin 的子类,读取 [StudioPlugin] 元数据。
  2. 实例化插件对象,注入 Info、Config、Logger、HarmonyInstance。
  3. 调用 HarmonyInstance.PatchAll() 应用插件自带的补丁。
  4. 调用 OnLoaded()。
  5. 记录结果(成功 / 异常 + 堆栈 + 补丁数量),供 F10 控制台展示。

单个插件加载失败不会影响其他插件,也不会中断 Studio 启动。

相关文档 ​

为 BrickLink Studio 2.0 打造的第三方 Mod 加载框架 · 与 BrickLink / LEGO 官方无关联