依据 Gitea v1.27.3 modules/charset/escape_stream.go 的判定规则 (analyzeDetectResults:仅当左右相邻字符都不是非 ASCII 时才标记, 且 _common 表恒定生效),把说明文档中会被标记的全角标点 (,:;?!() 等)改为半角,并保证成对括号宽度一致。 中文语境中的全角标点(左右均为中文)保持原样,不动代码与契约语义。
59 lines
1.9 KiB
Markdown
59 lines
1.9 KiB
Markdown
# T-WIN-011 Windows 打包脚本
|
|
|
|
- **状态**: done
|
|
- **依赖**: T-WIN-001 ~ 010
|
|
|
|
## 目标
|
|
|
|
提供 Linux 直接导出(方案 A,推荐)与 Windows 端兜底(方案 B)两条打包路径。
|
|
|
|
## load
|
|
|
|
```
|
|
DSH.md
|
|
build/export-windows.sh
|
|
build/export-windows.ps1
|
|
export_presets.cfg
|
|
```
|
|
|
|
## 交付物
|
|
|
|
| 文件 | 说明 |
|
|
|--|--|
|
|
| `export_presets.cfg` | 导出预设(**必须在项目根目录**, Godot 硬性要求) |
|
|
| `build/export-windows.sh` | Linux 导出:定位 Godot -> 检查模板 -> 导入 -> 导出 -> **校验 PE 头** |
|
|
| `build/export-windows.ps1` | Windows 兜底:同上,产物路径与校验逻辑一致 |
|
|
|
|
## 脚本健壮性
|
|
|
|
- `GODOT_BIN` 环境变量或 PATH 自动定位 Godot,缺失时给出可执行的安装指引
|
|
- 导出模板缺失时明确报错并给出下载与安装路径
|
|
- 导出命令返回非 0 时**仍检查产物是否存在**(Godot 有时非 0 返回但产物有效)
|
|
- 读取产物前 2 字节校验 `MZ`(PE 头),防止导出静默产出空壳
|
|
|
|
## 验收(文档 5.4)
|
|
|
|
| 验收项 | 结果 |
|
|
|--|--|
|
|
| Linux: `bash build/export-windows.sh` 成功生成 exe | ✅ 生成 `OpenDance.exe` 104 MB + `OpenDance.pck` 107 KB, PE 头校验通过 |
|
|
| Windows: `powershell build/export-windows.ps1` 成功生成 exe | ⚠️ 脚本就绪,本环境无 Windows,未实机执行 |
|
|
| 生成的 exe 在 Windows 10/11 可运行 | ⚠️ 本环境无 Windows;已校验为合法 PE32+ x86_64 可执行文件 |
|
|
| `THIRD_PARTY.md` 包含所有开源项目与源链接 | ✅ 15 项,与契约表逐条一致 |
|
|
|
|
## 打包产物
|
|
|
|
```
|
|
opendance-windows-v0.1.0.zip
|
|
├── OpenDance.exe
|
|
├── OpenDance.pck
|
|
├── THIRD_PARTY.md
|
|
├── README.txt
|
|
└── contracts/ # 契约快照
|
|
```
|
|
|
|
## 环境记录
|
|
|
|
- Godot 4.7.2.stable(`ed1daf0bf`)
|
|
- 导出模板 `4.7.2.stable`(``windows_release_x86_64.exe``)
|
|
- 首次导出失败原因:`export_presets.cfg` 放在 `build/` 下,Godot 只在**项目根目录**查找
|