3. 部署包类型辨析

在 TestStand 产线发布工程中,“部署包”并不是一个单一概念。很多团队在第一次发布时会把所有交付物统称为“安装包”,结果在产线现场出现“装不上、装不全、换台机器就失效、升级后序列文件丢失”等问题。要避免这些坑,必须先厘清四类交付形态的本质差异:部署工具(Deployment Utility)、安装程序(Installer)、系统镜像(Image)和便携式部署(Portable Deployment)。它们不是同一件事的四种叫法,而是面向不同发布场景、不同权限条件、不同维护策略的四条技术路线。

四类部署形态的本质区别

部署工具是 TestStand 自带的一个“打包引擎”。它读取一个 .tsd 部署定义文件,把序列文件、代码模块、依赖项、配置等收集成一个可再分发的部署包。它本身不负责安装,只负责“收集与描述”。安装程序则是在部署工具产物基础上,进一步生成带安装向导、注册表写入、快捷方式、卸载入口的 setup.exe,面向最终操作员,双击即可完成安装。系统镜像是把整台测试机(操作系统、驱动、TestStand 引擎、序列、硬件配置)整体封装,用于批量克隆产线工位。便携式部署则把 TestStand 引擎与序列一起放到 U 盘或移动硬盘,插上即运行,不写注册表、不依赖目标机预装。

四类部署形态的适用边界与选择依据 部署工具 输入:.tsd 定义文件 输出:部署包目录 特点:只收集,不安装 适用:内部交付、CI 集成 权限:无需管理员 维护:需配合脚本分发 安装程序 输入:部署包 + 安装脚本 输出:setup.exe 特点:向导式,可卸载 适用:产线工位标准安装 权限:通常需管理员 维护:版本升级友好 系统镜像 输入:整机系统盘 输出:.wim / .gho 镜像 特点:整机克隆,含 OS 适用:批量新工位部署 权限:需 PE 环境 维护:重装成本高 便携式部署 输入:引擎 + 序列 + 驱动 输出:U 盘 / 移动硬盘 特点:免安装,即插即用 适用:临时调试、外场 权限:无需管理员 维护:版本易混乱 选择依据:按发布场景匹配部署形态 目标机是否预装 TestStand 引擎? 否 是否需批量克隆 整台工位? 是 系统镜像 (整机克隆) 否 安装程序 (标准安装) 是 便携式部署 (免安装运行) 内部 部署工具 (CI 集成)

部署工具:打包引擎,不是安装包

部署工具的核心价值在于“可重复、可版本化”。在 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 集成、内部交付 产线标准工位 新工位批量上线 外场调试、演示
实操建议:产线发布时,推荐“安装程序为主、部署工具为辅、便携式部署为应急、系统镜像仅用于初建”的组合策略。安装程序负责标准工位的日常版本更新;部署工具用于 CI 流水线自动构建;便携式部署放在工具柜中,用于临时替换故障工位;系统镜像只在产线初建或整线重装时使用。
常见误区:把部署工具生成的部署包直接当安装包发给产线操作员,结果对方双击后只看到一堆文件夹,不知道下一步做什么。部署工具的输出是“原材料”,安装程序才是“成品”。另一个误区是便携式部署长期替代安装程序,导致产线工位版本失控、序列文件散落在多个 U 盘中无法追溯。

总结来说,部署工具解决“打包什么”,安装程序解决“怎么装”,系统镜像解决“整机怎么克隆”,便携式部署解决“不装怎么跑”。选择时先问三个问题:目标机有没有引擎?有没有管理员权限?是批量还是单台?三个问题的答案组合,就能直接映射到对应的部署形态。