和「排查记录」不同,这份文档不写怎么修,只回答「为什么会踩、为什么没早发现」, 给的是可迁移的判断,而不是单次操作步骤。 - P-001 启动器套娃开窗:三层成因(打包改变 sys.executable 语义 / Popen 只保证 进程创建不保证脚本执行 / 端口顺延把必然失败伪装成正常启动)、四个掩盖因素、 四个不成立的隐含假设,以及「拉起子进程要校验副作用而非返回值」等五条教训 - P-002~P-013:DLL 指纹绑定、CRC32 种子、CRC 槽位扫错节、CSS 特异性、IE11、 旧进程占端口、WebView2 缓存、console=False、图片占位时序、仓库与部署副本、 replace 静默失败、补丁包缺文件 - 结尾提炼八条通用规则与发版检查清单 - 文档索引:根 README、docs/README 各补一行;排查文档顶部加成因复盘的交叉链接
31 lines
2.1 KiB
Markdown
31 lines
2.1 KiB
Markdown
# 开发文档索引
|
||
|
||
本目录汇总各子项目的开发文档。
|
||
|
||
| 文档 | 内容 |
|
||
|------|------|
|
||
| [开发文档.md](开发文档.md) | **GM 启动器 / 整合工具** 完整开发文档(环境搭建、架构、API 契约、打包部署、常见问题) |
|
||
| [服务端开发文档.md](服务端开发文档.md) | **服务端(Go)** 架构、GM 接口契约、拍卖行/背包改动、编译部署 |
|
||
| [PVF解析开发文档.md](PVF解析开发文档.md) | **PVF 解析** 套件(pvfine)、pvfexport 工具、离线名称显示集成 |
|
||
| [客户端补丁与CRC校验.md](客户端补丁与CRC校验.md) | **客户端补丁(90CN.dll)** 自校验机制、`patch_dll_crc.py` 用法、与「服务端 DLL 指纹」的区别、排查手册 |
|
||
| [启动器窗口风暴排查.md](启动器窗口风暴排查.md) | **启动器重复开窗口 / 页面空白** 的根因(打包后 `sys.executable` 指向自身)、复现手法、修复点与日志判读 |
|
||
| [踩坑记录.md](踩坑记录.md) | **踩坑合集**(13 条):每条只写现象 / 成因 / 为什么没早发现 / 教训,开头是一句话教训总表,结尾是发版检查清单 |
|
||
| [launcher-README.md](launcher-README.md) | 整合启动器 + GM 工具的原始 README |
|
||
|
||
其余子项目的 README 分散在各自目录:
|
||
|
||
- `server/README.md` — 服务端源码说明
|
||
- `pvf/README.md` — pvfine 项目说明
|
||
- `gmtool/README.md` — GM 工具旧版说明
|
||
|
||
---
|
||
|
||
## 快速上手路径
|
||
|
||
1. **只想跑起来**:看根目录 [README](../README.md) 的「快速开始」。
|
||
2. **改 GM 工具(启动器)**:看 [开发文档.md](开发文档.md)。
|
||
3. **改服务端 GM 接口**:看 [服务端开发文档.md](服务端开发文档.md) 的「GM 接口契约」。
|
||
4. **改 PVF 解析 / 物品名**:看 [PVF解析开发文档.md](PVF解析开发文档.md)。
|
||
5. **改客户端补丁 / 重编 DLL**:看 [客户端补丁与CRC校验.md](客户端补丁与CRC校验.md)——改完 DLL 要补 CRC,并且要重编服务端。
|
||
6. **遇到怪问题先翻 [踩坑记录.md](踩坑记录.md)**:13 条坑的一句话教训和判断规则,可能已经记过了。
|