Files
ctbjrj/部署打包指南.md
T

110 lines
6.4 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.
# 成套报价软件 部署打包指南(新机器从 git 到可打包运行)
> 适用场景:换新电脑/新人接手——git 仓库里只有源码,本文教你把一台空机器变成**可编译、可打包、可发版**的开发机。
> 日常发版流程见 `README.md`「版本号与发版流程」或打包技能(`.agents\skills\winforms-designer-package\SKILL.md` 项目专章)。
## 一、为什么 clone 后不能直接打包?
git 仓库为控制体积,**故意不存**以下运行时资源(可用其他方式恢复,见第三节):
| 资源 | 体积 | 用途 | 恢复来源 |
|---|---|---|---|
| `licenses\`(8 份开源许可证全文) | 小 | 打包+关于窗口 | 安装目录 / 老开发机 |
| `元件库网页\`(node 静态服务数据) | ~2MB | 元件库选型功能 | 同上 |
| `cadbt\cadbt\CAD-Viewer\`(网页 CAD 引擎 dist+字体) | 大 | CAD 扒图 | 同上 |
| `cadbt\cadbt\bin\Debug\node\`(node.exe) | ~80MB | 网页服务运行时 | 同上 |
| `ai助手\zcode\`(ZCode 引擎发行包) | ~400MB | AI 助手 | 同上 / 官方 zai-org/ZCode |
| `bin\Debug\` 下运行数据(sjk 种子/shezhi 参数/xiangmu 模板/GCS 运行件/icons PNG) | ~10MB | 程序运行+打包取数 | 同上 |
| `tools\MicrosoftEdgeWebview2Setup.exe` | 2MB | 打包用 | **git 里有** ✓ |
## 二、工具链安装(一次性)
| 工具 | 获取 | 用途 |
|---|---|---|
| **.NET Framework 4.8 + Developer Pack** | 微软官网 NDP48-DevPack 离线包 | 编译(缺 Dev Pack 会报 MSB3644) |
| **定制版 SharpDevelop 5.2**(MSI) | 项目配套安装包,装到默认 `C:\Program Files (x86)\SharpDevelop\5.2\` | ①提供编译引用的 Smart.CustomComponents/WeifenLuo/System.Data.SQLite 等 DLL ②SD 设计器改窗体(必须是最新构建,旧包缺控件) |
| **Inno Setup 6 + 中文语言包** | 官网 + `ChineseSimplified.isl`(装法见打包技能第 3 步) | 打安装包 |
| **Python 3** | python.org | 打包脚本 make_package.py 等 |
| **git** | 任意 | 克隆/提交 |
## 三、环境准备(一次性,装完即可反复打包)
```powershell
# 1. 安装一次当前正式版,形成完整运行时底座 C:\成套报价软件
# (用最新 Release 的 成套报价软件_Setup_<版本>.exe)
# 2. 克隆仓库
git clone http://192.168.9.43:3000/0999we/ctbjrj.git
cd ctbjrj # 即仓库根
# 3. 从安装目录恢复 git 外运行时资源(映射表,直接复制)
$src = 'C:\成套报价软件'
# 3a. bin\Debug 运行数据(make_package 从这里取数)
mkdir 成套报价软件\bin\Debug -Force
Copy-Item "$src\licenses" 成套报价软件\bin\Debug\licenses -Recurse
Copy-Item "$src\元件库网页" 成套报价软件\bin\Debug\元件库网页 -Recurse
Copy-Item "$src\sjk" 成套报价软件\bin\Debug\sjk -Recurse # 种子库;bjb\方案库 个人数据可不拷
Copy-Item "$src\shezhi" 成套报价软件\bin\Debug\shezhi -Recurse # 铜排/铝排参数
Copy-Item "$src\xiangmu" 成套报价软件\bin\Debug\xiangmu -Recurse # 报表模板
Copy-Item "$src\GCS铜排壳体计算" 成套报价软件\bin\Debug\GCS铜排壳体计算 -Recurse
Copy-Item "$src\icons" 成套报价软件\bin\Debug\icons -Recurse # 功能区 PNG 图标
# 3b. CAD 网页引擎 + node(打包与开发调试回退路径)
mkdir cadbt\cadbt\bin\Debug\node -Force
Copy-Item "$src\cadbt\node\node.exe" cadbt\cadbt\bin\Debug\node\node.exe
mkdir cadbt\cadbt\CAD-Viewer\packages\cad-viewer-example -Force
Copy-Item "$src\cadbt\CAD-Viewer\dist" cadbt\cadbt\CAD-Viewer\packages\cad-viewer-example\dist -Recurse
# 3c. AI 引擎发行包
Copy-Item "$src\ai助手\zcode" ai助手\zcode -Recurse
```
> 老开发机仍在用时,也可以直接从老机器整目录拷贝上述内容(等价)。
> `tools\MicrosoftEdgeWebview2Setup.exe` 在 git 里,无需另备。
## 四、验证环境就绪(编译+组装各跑一遍)
```powershell
# 编译(★ 工作目录必须是 成套报价软件\ 子目录,rsp 相对路径基于它)
cd 成套报价软件
& "C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe" "@..\tools\verify_build.rsp" /warn:1
# 预期: 无输出无警告, ExitCode=0
# 组装发布目录(回仓库根跑)
cd ..
python tools\make_package.py
# 预期: "DLL 复制完成,缺失: 无" 且无 "!!" 警告
# 首次部署若提示缺 fonts/templates/server.cjs,属正常——开发机从部署机补齐的逻辑,
# 你机器上 $src\cadbt\CAD-Viewer\dist 已含这三样,核对输出无 "!!" 即可
```
两条都过 = 环境就绪,随时可打包发版。
## 五、日常打包发版(8 步,详见打包技能项目专章)
```
① tools\递增版本号.ps1 版本号+1(AssemblyInfo+setup.iss 同步)
② 杀占用进程 → 编译(同第四节)
③ python tools\make_package.py 组装发布目录
④ ISCC release\成套报价软件\setup.iss 出 成套报价软件_Setup_<版本>.exe(~2分钟)
⑤ 改 make_update_package.py(包名带版本+本期说明)→ python 运行 出更新包
⑥ git add -A; git commit; git push
⑦ Gitea Release:tag=v<版本>,附件=安装包+更新包(API+令牌,见技能)
⑧ 验收:装机看"关于软件"版本号
```
## 六、常见问题
| 现象 | 原因 | 处置 |
|---|---|---|
| 编译报 CS2001 全部源文件找不到 | 工作目录错了 | 必须 `成套报价软件\` 子目录里跑 `@..\tools\verify_build.rsp` |
| 编译报缺 Smart.CustomComponents 等 | 没装定制版 SharpDevelop 或装在非默认位置 | 装 MSI 到默认目录;非默认位置需改 rsp 引用路径 |
| make_package 提示缺 icons/licenses/元件库网页 | 第三节 3a 没做 | 按映射表补拷 |
| 打出的包 CAD 打不开/缺字体 | CAD-Viewer dist 或 node 没恢复 | 按第三节 3b 补拷 |
| AI 助手起不来 | zcode 发行包缺失 | 按第三节 3c 补拷 |
| exe 被占用编译/复制失败 | 程序正在运行 | `Get-Process \| Where {$_.Path -like '*成套报价软件*'} \| Stop-Process -Force` |
| SD 设计器打不开窗体/一片 CS0246 | SharpDevelop 是旧构建 | 换最新构建的 MSI 重装(详见 sd-enhanced-components 技能第四章) |
## 七、数据安全提醒
- `bin\Debug\sjk\bjb\`(项目库)、`sjk\方案库\`、`shezhi\` 企业信息是**用户数据**,换机器不要互拷(打包脚本会自动排除)。
- git 仓库与 Release 附件不含任何用户项目数据。