Files
OnebotCatalog/欧霓博_目录软件_M3设计文档.md

100 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# M3 设计文档:一键编译发布(客户版 exe + 光盘结构)+ 正式版
> **历史设计文档2026-06 拟定)**。实施后的最终状态2026.08 发布管线/三份产物/站点删除重试等)、与设计的偏差、进度与踩坑以 **项目总览.md** 为准(同目录)。本文件仅作设计参考。
## 1. M3 目标与验收标准
维护入口中点击"编译发布"→ 生成客户版单文件 exe目录数据内置、无维护入口可选生成光盘/USB 目录结构;多语言完整;交付两份手册——正式版。
**验收标准:**
- 编译发布产出的客户版 exe 在**纯净 Win10/11 虚拟机**(无 .NET 运行时、断网)上双击即用,完成选型 → 下载 STEP 全流程
- 客户版 exe 中不存在维护入口(无 --admin 响应、无维护页、无 Builder 代码路径)
- 光盘/USB 目录结构生成正确autorun.inf + exe + 外置 .opc增量更新包仅换 .opc验证可用
- 中/英全量文案无缺失 key用户手册 + 维护手册交付
- 数据包版本校验:客户端对过旧/过新的 .opc 给出明确提示
## 2. 发布流水线
```
Builder 生成 .opc ──→ 校验器(通过才可发布)
├─ 路径 A单文件客户版默认
│ .opc 作为嵌入资源 → dotnet publishself-contained, single-file,
│ Release, trimmed, CUSTOMER_BUILD 编译符号)→ OuniboCatalog.exe
└─ 路径 B目录版光盘/USB 用)
exe同 CUSTOMER_BUILD 编译,不含资源)+ 外置 catalog.opc
→ 生成发布目录结构(见 §3
```
### 2.1 单文件实现方案
- 一份代码同时支持 A/B启动时 `先找 exe 旁 catalog.opcB→ 找不到读嵌入资源A→ 都没有则提示"数据包缺失"`A 由 Packager 把 .opc 写入资源后重新编译
- 实现细节Packager 维护一个预置的"客户版 csproj",把 .opc 复制为 EmbeddedResource调用 `dotnet publish` 自动编译;发布机需装 .NET SDK
- `CUSTOMER_BUILD` 编译符号:剔除 AdminService、维护页、Builder、校验器、Packager 自身(`#if !CUSTOMER_BUILD`),确保客户版干净且更小
- self-contained + single-file + trimmed客户机无需装 .NET注意 Helix Toolkit 与 WPF 的 trimming 兼容性,若有反射问题则关 trim 或用 RDXml 声明
- exe 图标(欧霓博 logo、版本资源FileVersion = 目录版本)、产品名
### 2.2 代码签名(可选但建议)
- 购买代码签名证书OV 级足够),发布机集成签名步骤;未签名 exe 会被 SmartScreen 拦截,客户体验差——**正式发布前建议完成**
## 3. 光盘/USB 发布目录结构(对标 Airtac 包形态)
```
OuniboCatalog_2026.06/
├── autorun.inf # 指向 OuniboCatalog.exe
├── OuniboCatalog.exe # 客户版CUSTOMER_BUILD无嵌入数据
├── catalog.opc # 数据包(外置,增量更新只换此文件)
├── icon.ico
└── README_zh.txt / README_en.txt # 使用说明(含各 CAD 导入 STEP 的简略指引)
```
- 增量更新包 = 新版 `catalog.opc`(校验器通过后由发布流水线产出),客户覆盖即升级;单文件版客户升级 = 重新下发 exe
- autorun.inf 在 Win10/11 默认禁用自动播放——README 中说明"双击 exe 运行",不依赖 autorun
## 4. 版本与兼容
- `catalog_meta``catalog_version`(目录内容版本)+ `schema_version`(格式版本)
- 客户端加载 .opc 时校验schema_version 高于软件支持 → 提示"请升级软件";低于已知最低版本 → 提示"数据包过旧";均拒绝加载
- 版本号规则:`年.月`(如 2026.06+ 补丁位2026.06.1),显示在关于页
## 5. 多语言完善
- 全部文案入资源文件zh-CN / en-US含错误提示、规则解释、校验报告
- 构建期脚本扫描缺失 key界面启动时兜底显示 key 本身,测试阶段开警告)
- 语言选择:首次启动跟随系统 → 设置可切换(沿用 M1 设计)
## 6. 文档(交付物)
- **用户手册**:安装/运行、选型流程、STEP 下载与各主流 CAD 导入指引、批量下载、FAQ
- **维护手册**数据准备规范Excel 模板格式、STEP 文件要求、命名约定、Builder 五步操作、校验与常见错误处理、发布流程(编译发布操作步骤、增量更新流程)
- 两份手册中/英双语
## 7. 验收测试清单
| 场景 | 预期 |
|---|---|
| 纯净 Win10/11 虚拟机,双击客户版 exe | 无需安装 .NET直接运行 |
| 断网运行 | 全流程可用 |
| 客户版 --admin 启动 | 无维护入口响应 |
| 搜索/选型5 万变体规模抽测) | 启动 <5s过滤/搜索 <1s |
| 光盘目录版仅替换 catalog.opc 升级 | 新版数据生效版本号正确显示 |
| schema_version 改大后加载 | 明确提示"请升级软件"不崩溃 |
| 校验器存在 ERROR 时点编译发布 | 被拦截并给出报告 |
| STEP 下载后在 SolidWorks/NX 打开 | 尺寸正确 |
## 8. 任务清单(建议实现顺序)
1. Packager路径 B目录版+ 增量更新包产出
2. `CUSTOMER_BUILD` 编译符号改造 + 单文件 self-contained 发布路径 A
3. 版本校验与关于页
4. 多语言补齐 + 缺失 key 检查
5. 图标/版本资源/签名流程
6. 两份手册编写
7. 虚拟机验收测试全项走查
## 9. 后续M4 可选扩展,不在本次范围)
Teamcenter 集成SOA 检入映射 JSON)——仅当有客户明确需要时启动