数据目录
查看 MarkdownXBase 的目录约定、模组数据位置、应用数据目录与查看器。
所有接入 XBase 的模组共用一份目录:
<游戏根目录>\XBase\。本节说明路径约定、取路径的 API 与出厂查看器。
<游戏根目录>\XBase\
XBase.exe ← 日志与配置查看器
debug.log ← XBase 自身日志
config.json ← XBase 自身配置
hotkeys.json ← XBase 热键绑定
Library\ ← 公用二进制,只放 XBase 共享运行时与 WebView2Loader
XBaseSA.dll / XBaseVC.dll / XBaseIII.dll
WebView2Loader.dll
Mods\
XMenu\
config.json
debug.log
WebView2\
WebView2SA.dll / WebView2VC.dll / WebView2III.dll ← 两段式模组的 payload
config.json
debug.log模组目录名与 asi 文件名一致,不含扩展名。Library\ 只放公用库;模组自己的 payload dll 与数据一律在 Mods\<模组名>\ 下。
缓存类数据不落在游戏目录,统一放 AppData:
%APPDATA%\com.yuinijika.xbase\
webview2\ ← WebView2 用户数据(EBWebView)游戏目录常被整体压缩分享,WebView2 用户数据里的缓存与登录态跟着打包走存在泄漏风险,因此隔离到游戏目录之外。
宿主不要自行拼接路径,使用公共方法:
const std::string gameDir = XBase::Platform::GameDirectory(); // 游戏根目录
const std::string baseDir = XBase::Platform::XBaseDirectory(); // <游戏根目录>\XBase\
const std::string appDir = XBase::Platform::AppDataDirectory(); // <AppData>\com.yuinijika.xbase\
const std::string modDir = XBase::Platform::ModDirectory("XMenu"); // <游戏根目录>\XBase\Mods\XMenu\
const std::string cfgPath = XBase::Platform::ModConfigPath("XMenu");
const std::string logPath = XBase::Platform::ModLogPath("XMenu");ModDirectory() 会按需创建目录。AppDataDirectory() 取不到 AppData 时返回空字符串,调用方自行决定是否退回游戏目录。
XBase::Log::InitForMod("XMenu"); // <游戏根目录>\XBase\Mods\XMenu\debug.log
XBase::Config::InitForMod("XMenu"); // <游戏根目录>\XBase\Mods\XMenu\config.json
XBase::Log::Shutdown();Log::Init() 与 Config::Init() 写的是 XBase 自身数据,模组一律用 InitForMod()。
config.json / hotkeys.json 放在 asi 目录下的 XBase\,首次运行时会把它们迁移到新位置WebView2Loader.dll 如果还在 asi 目录旁或旧版 XBase\ 根目录,加载时会被搬到 <游戏根目录>\XBase\Library\ 再使用logs\xbase.log 不再写入<游戏根目录>\XBase\webview2,现已改到 AppData;旧目录不做自动迁移,可手动删除<游戏根目录>\XBase\XBase.exe:
Mods\ 下的每个模组config.json、debug.log、hotkeys.json| 现象 | 排查 |
|---|---|
| 配置没有写入 | 是否调用了 Config::InitForMod("模组名"),模组名是否与 asi 同名 |
| 日志找不到 | 看 <游戏根目录>\XBase\Mods\<模组名>\debug.log,不再有 logs 目录 |
| 网页加载被拦 | 是否先 MapFolder() 映射虚拟主机,而不是直接用 file: 协议 |
| 加载器缺失 | 确认 <游戏根目录>\XBase\Library\WebView2Loader.dll 存在,或让 XBase 自行迁移旧副本 |
| 网页数据还在游戏目录 | 旧版本把 webview2 放在 <游戏根目录>\XBase\,删除即可;新位置为 %APPDATA%\com.yuinijika.xbase\webview2 |
评论