跳到主要内容
版本:1.0.0

导出 CS 程序(把工作空间变成独立程序)

ToolBank 主菜单 二次开发 → 导出CS程序 可以把当前工作空间连同运行期一起导出为可独立编译、分发的 WPF C# 工程。适合把“你在 ToolBank 里搭好的检测流程”交付给客户 / 集成进产线软件的场景。

导出的到底是什么​

内容说明
你的工程内容程序文件(.tbcode)+ 用户视图布局(.tblayout)+ 序列化变量,原样带入
运行期Runtime/ 目录:程序运行所需的全部 DLL(不含 pdb / 测试件),导出工程编译后即可脱离 ToolBank 主程序独立运行
主界面导出的 MainWindow 把用户视图包装为主界面:静默加载程序 → 恢复视图布局,最终用户打开就是一个“产品化”界面
SDK 示例附带 MainUI.ToolBank.ClientSdk 与 A/B/Q 三线示例代码,二次开发者可直接照抄扩展
README针对该次导出的使用说明

不导出:算子的实现源码——导出的是运行期而非工程源码,算法以 DLL 形式分发,保护算子知识产权。

操作步骤​

  1. 打开 / 整理好要交付的工作空间(程序、用户视图、变量都就位);
  2. 主菜单 二次开发 → 导出CS程序;
  3. 选择目标文件夹(⚠️ 不能选在工作空间内部,避免递归复制);目标框架默认 .NET Framework 4.7.2;
  4. 点击导出,等待完成;
  5. 用 Visual Studio 打开导出的 .sln 编译,产物即可独立分发。
导出目标文件夹\
├── ToolBankExport.sln / .csproj
├── App / MainWindow.* ← 用户视图包装主界面
├── Runtime\ ← 全部运行期 DLL
├── Workspace\ ← 程序 .tbcode + 布局 .tblayout + 变量
├── README.md ← 本次导出说明
└── (SDK 示例代码)

二次开发怎么接​

导出工程中,MainWindow 已通过 SDK 完成“加载 → 运行”的基础闭环。想加业务逻辑(对接 MES、做数据上报、定制界面按钮),在导出的工程里继续写:

// 典型接入点:程序运行完成后读取结果
var result = sdk.RunAll();
if (!result.Success)
{
// result.ErrorMessage / FailedToolIndex 定位失败算子
}

double[] scores = sdk.GetDoubleList("Main", "Score");
// → 上报数据库 / 控制 PLC / 记录日志……

三线 API 的能力与示例见 二次开发 SDK,导出工程里也自带同款示例,可直接对照。

限制与注意​

  • 目标文件夹不可位于工作空间内;
  • 导出需要当前工作空间可正常打开运行——先在主程序里把流程跑通再导出;
  • 客户侧不需要安装 ToolBank 主程序,但需要与导出目标框架一致(.NET Framework 4.7.2)的运行环境与必要的 VC++ 运行库(运行期含原生算子时);
  • 深度学习 / OCR 等算子的模型文件请一并放进分发目录,并在程序里把 ModelPath 指向分发后的实际位置(可用 $(SolutionDir) 相对化,见 工具与算子库);
  • 算法更新后重新导出即可获得新版本——对客户而言相当于一次“换包升级”。

典型交付链路​