Build 与运行验收
编辑器中的 Build 会检查磁盘上已保存的工程,并把可运行版本部署到当前 Runtime target。Build 成功不等于 App 已经启动;之后仍需 Start 或 Debug。
本页目标
阅读本页后,你应该能够:
- 判断一项修改是否需要重新 Build;
- 选择 Build Debug 或 Build Release;
- 独立 Build,或在 Start/Debug 提示时使用 Build and continue;
- 根据 Problems、运行状态和目标信息定位交付失败。
操作入口
| 任务 | 入口 |
|---|---|
| 选择 Runtime target | 编辑器顶栏 Build 左侧 |
| 使用上次选择的 Profile 构建 | 编辑器顶栏 Build |
| 指定 Debug 或 Release | Build 右侧菜单 |
| 清理本地 Build 结果 | Build 右侧菜单中的清理 |
| 启动或调试 | 顶栏 Start / Debug |
| 停止 | 顶栏 Stop |
| 查看构建错误 | 底部 Problems |
| 查看运行错误 | Console、故障对话框和运行状态 |
哪些修改需要 Build
只要修改会影响目标上的页面、逻辑、数据定义、设备或权限,就应在保存后重新 Build。
| 修改内容 | 是否需要 Build | 验收重点 |
|---|---|---|
.qp Page、.qpc Component、样式、事件、Asset、i18n | 需要 | 页面显示、交互、内容路径和多语言 |
.qg QG 程序 | 需要 | 顺序、分支、等待、超时、故障和恢复 |
| Object 实例、属性、引用或自定义 C# Provider | 需要 | Provider 是否可用、参数和真实设备行为 |
| Variable、Recipe、Query | 需要 | 初始值、配方、请求参数和外部系统结果 |
| App 用户、角色、首页和模块开关 | 需要 | 登录、权限、导航和启用能力 |
| Motion、Vision、Safety 配置 | 需要 | 目标硬件、批准版本、联锁和异常路径 |
| Git 提交、AI 会话、编辑器布局 | 不需要 | 这些内容不进入运行态 |
Build 只读取已保存到磁盘的文件。未保存草稿不会进入部署版本。若打开的文档仍有未保存、冲突或已删除状态,编辑器会先提醒;继续时仍以磁盘内容为准。
选择 Build Profile
| Profile | 适用场景 | 注意事项 |
|---|---|---|
| Build Debug | 开发、故障定位和 QG 源码断点 | 保留本机源码调试信息 |
| Build Release | 交付和性能验收 | 使用优化结果,不支持 QG 源码断点 |
Build 主按钮重复上一次选择的 Profile。Start 可以运行已经部署的版本;需要 QG 源码断点时,应先 Build Debug。若 Debug 因目标缺少当前 Build 而触发 Build and continue,编辑器会使用 Debug Profile。
标准流程
构建并部署,但不启动
- 保存所有要交付的修改。
- 确认 App 已是 Stopped;若仍在运行或调试,先 Stop。
- 核对顶栏 Runtime target,特别是生产与测试目标。
- 从 Build 菜单选择需要的 Debug 或 Release Profile。
- 点击 Build。若出现未保存文件提醒,确认哪些磁盘内容会被构建。
- 若目标当前部署的是另一个 App,核对影响后再确认替换。
- 等待成功提示,并确认 Problems 没有阻止运行的错误。
预期结果是:新版本已部署到所选目标,但 App 仍保持 Stopped,也不会执行设备动作。
Start 或 Debug 时构建并继续
Start 和 Debug 会先尝试使用目标上已经部署的当前 App。若目标尚未部署 App,或目标缺少这个 App 的可用 Build,编辑器会询问是否 Build and continue:
- 先保存希望进入运行态的修改。
- 确认对话框中的动作和当前 Runtime target。
- 选择 Build and continue。
- 编辑器依次 Build、Deploy,并只在成功后继续原来的 Start 或 Debug。
- 等待 Running 或 Debugging,再开始验收。
点击取消会保持当前状态。Build 或 Deploy 失败时,原来的 Start/Debug 不会继续。
这项确认只处理“目标没有可用 Build”的情况,不会替你判断已保存工程文件是否比已交付版本更新。只要修改过需要交付的文件,就应主动 Build。
修改运行中的 App
- Stop,并等待 Stopped。
- 修改并保存工程。
- 对同一个 Runtime target 重新 Build。
- Start 或 Debug。
- 验证正常、边界、异常、停止和恢复路径。
保存文件、刷新编辑器或进入 Preview 都不会热替换正在运行的实例。
在另一台设备上验收
本页的 Build 流程对本机和远程目标相同,但远程交付还需要单独核对网络、安全连接、目标权限、许可证、停机窗口和 Player。请先完成Runtime 与现场交付,再回到本页执行 Build 和运行验收。
交付 Vision 或 Safety 修改
Vision 的检测版本必须先完成验证集并由责任人批准,再激活为当前版本。Safety 修改必须经过工程联锁测试。两者保存后都不会热更新运行实例;请 Stop、Build、Start/Debug,并重新覆盖服务中断、异常值和恢复场景。
清理
清理只移除当前工程和目标的本地 Build 结果,使下一次 Build 重新生成。它不会:
- 删除或修改工程源码;
- 自动开始新的 Build;
- 删除 Runtime target 上已经部署的 App;
- 清除 Saved Variable、Vision 数据或其他运行状态。
清理完成后,如需交付新版本,请再次点击 Build。
预期结果
- Build 使用正确 Runtime target 和 Profile,并成功完成部署。
- Problems 没有阻止运行的错误。
- 仅 Build 后状态仍为 Stopped。
- Start 后进入 Running;Debug 后进入 Debugging。
- 运行页、设备反馈、权限和批准配置都与本次修改一致。
- Stop、故障和恢复路径经过验证。
常见问题
Build 按钮不可用
App 必须是 Stopped,且不能有另一个运行操作正在执行。先 Stop,或等待当前操作完成。
Start 没有提示 Build,但运行的仍是旧版本
目标上已有可运行的部署,所以 Start 不会读取工程来比较新旧。保存修改后请主动 Build,再重新 Start。
Build and continue 后没有启动
检查 Problems 和部署错误。只有 Build 与 Deploy 都成功,编辑器才会继续原来的 Start 或 Debug。
Build 提示目标部署了另一个 App
先确认目标、现场运行状态和停机窗口。取消不会替换目标;确认后 Theseus 才会停止旧实例并部署当前 App。
Build 成功,但运行页仍显示旧行为
确认查看的是同一个 Runtime target,并重新 Start 或 Debug。必要时关闭并重新打开已经连接旧实例的运行页。
本机正常,远端失败
进入Runtime 与现场交付,检查目标地址、安全连接、权限、许可证和设备条件。以远端操作返回的错误和现场反馈为准。
AI 可以怎么帮
引用 Problems 中的错误和对应文件,并限定修改范围:
分析当前 Build 失败。只修复阻止构建的
.qpPage、.qpcComponent、.qgQG、Object 或 C# Provider 问题,不改变设备地址、工艺顺序或 Safety。完成后列出修改文件、诊断结果和仍需人工验证的假设。
AI 可以整理诊断和修改工程,但不能选择生产目标、批准替换、证明设备动作安全,或代替现场验收。
必须人工确认
- Runtime target、Build Profile 和账户权限正确。
- 未保存草稿没有被误认为已经交付。
- 设备地址、工艺顺序、角色权限和 Safety 未被意外改变。
- 生产替换、停机和恢复计划已批准。
- 正常、边界、异常和恢复场景全部通过。