3. 部署包类型辨析
在 TestStand 产线发布工程中,“部署包”并不是一个单一概念。很多团队在第一次发布时会把所有交付物统称为“安装包”,结果在产线现场出现“装不上、装不全、换台机器就失效、升级后序列文件丢失”等问题。要避免这些坑,必须先厘清四类交付形态的本质差异:部署工具(Deployment Utility)、安装程序(Installer)、系统镜像(Image)和便携式部署(Portable Deployment)。它们不是同一件事的四种叫法,而是面向不同发布场景、不同权限条件、不同维护策略的四条技术路线。
四类部署形态的本质区别
部署工具是 TestStand 自带的一个“打包引擎”。它读取一个 .tsd 部署定义文件,把序列文件、代码模块、依赖项、配置等收集成一个可再分发的部署包。它本身不负责安装,只负责“收集与描述”。安装程序则是在部署工具产物基础上,进一步生成带安装向导、注册表写入、快捷方式、卸载入口的 setup.exe,面向最终操作员,双击即可完成安装。系统镜像是把整台测试机(操作系统、驱动、TestStand 引擎、序列、硬件配置)整体封装,用于批量克隆产线工位。便携式部署则把 TestStand 引擎与序列一起放到 U 盘或移动硬盘,插上即运行,不写注册表、不依赖目标机预装。
部署工具:打包引擎,不是安装包
部署工具的核心价值在于“可重复、可版本化”。在 TestStand 中,通过 Tools >> Deployment Utility 打开部署工具,加载一个 .tsd 文件,勾选需要包含的序列文件、代码模块、依赖项和配置文件,点击 Build 即可生成部署包。这个包是一个目录结构,里面包含 TestStand Engine 安装文件、序列文件、代码模块和 DeploymentManifest.xml 清单文件。
部署工具适合两类场景:一是内部团队之间的交付,比如开发组把序列交给测试组,测试组在自己的机器上手动运行部署包中的 Setup.exe;二是 CI/CD 流水线集成,构建服务器调用命令行 Deploy.exe 自动生成部署包,再推送到文件服务器。它的边界也很明确:部署工具本身不写注册表、不创建快捷方式、不提供卸载入口,如果目标机没有 TestStand 引擎,部署包中的引擎安装程序仍需手动执行。
安装程序:面向产线操作员的“一键交付”
安装程序是在部署包基础上,用 InstallShield 或 TestStand 自带的 Installer 生成工具制作的 setup.exe。它把引擎安装、序列文件复制、注册表写入、快捷方式创建、卸载信息注册全部封装在一个向导里。产线操作员只需要双击、下一步、完成,不需要理解 TestStand 的目录结构。
安装程序的适用边界是“目标机需要长期稳定运行、且允许管理员权限安装”。典型参数示例:安装路径设为 D:\TestStand\Station01,序列文件复制到 D:\TestStand\Station01\Sequences,代码模块复制到 D:\TestStand\Station01\CodeModules,并在注册表 HKLM\Software\Company\TestStand 下写入工位编号和版本号。安装程序的最大优势是升级友好:新版本安装包可以直接覆盖旧版本,卸载时能干净移除。但它的边界也很清楚:需要管理员权限,不适合无盘工位或临时调试机。
系统镜像:批量克隆整台工位
系统镜像走的是另一条路线:不单独部署 TestStand,而是把整台测试机的系统盘(操作系统、驱动、TestStand 引擎、序列、硬件配置、网络设置)整体封装成 .wim 或 .gho 镜像文件。产线新工位上线时,用 PE 环境把镜像恢复到目标机硬盘,重启后即得到一台与母机完全一致的测试工位。
系统镜像的适用边界是“批量新工位部署、且硬件配置完全一致”。它的优势是部署速度极快,一台工位 10~15 分钟即可完成;缺点是维护成本高:任何序列更新都需要重新制作镜像,或者逐台手动更新。此外,镜像中如果包含 Windows 激活信息、网卡 MAC 绑定、硬盘序列号绑定,换机后可能出现激活失效或驱动不匹配。因此系统镜像通常只用于产线初建阶段,后续序列更新仍建议走安装程序或部署工具。
便携式部署:免安装的“移动测试站”
便携式部署把 TestStand 引擎、序列文件、代码模块、驱动一起放到 U 盘或移动硬盘,目标机不需要预装任何东西,插上 U 盘,运行 PortableTestStand.exe 即可启动。它不写注册表、不创建快捷方式、不依赖目标机的 TestStand 安装。
便携式部署的适用边界是“临时调试、外场测试、客户演示、无管理员权限的机器”。典型配置:U 盘根目录下建立 \TestStandPortable\Engine、\TestStandPortable\Sequences、\TestStandPortable\CodeModules 三个目录,引擎目录中放置 TestStand 运行时文件,序列目录中放置 .seq 文件。启动时通过 PortableTestStand.exe /seq:MainSequence.seq 指定入口序列。它的最大风险是版本混乱:多个 U 盘、多个版本同时存在时,操作员容易拿错盘、跑错序列。因此便携式部署必须配合明确的标签管理和版本号命名规范,例如 Station01_v2.3.1_20250601。
选择依据:一张决策表
四类部署形态没有绝对优劣,只有场景匹配。下表给出可执行的判断依据,供产线发布时直接对照使用。
| 判断维度 | 部署工具 | 安装程序 | 系统镜像 | 便携式部署 |
|---|---|---|---|---|
| 目标机是否预装引擎 | 否,需手动装 | 否,安装包自带 | 是,镜像已含 | 否,U 盘自带 |
| 是否需要管理员权限 | 否 | 是 | 是(PE 恢复) | 否 |
| 适合批量部署 | 中(配合脚本) | 中(逐台安装) | 高(克隆) | 低(逐台插盘) |
| 升级维护便利性 | 高(重新构建) | 高(覆盖安装) | 低(重做镜像) | 中(换盘) |
| 典型场景 | CI 集成、内部交付 | 产线标准工位 | 新工位批量上线 | 外场调试、演示 |
总结来说,部署工具解决“打包什么”,安装程序解决“怎么装”,系统镜像解决“整机怎么克隆”,便携式部署解决“不装怎么跑”。选择时先问三个问题:目标机有没有引擎?有没有管理员权限?是批量还是单台?三个问题的答案组合,就能直接映射到对应的部署形态。