IronBarcode架构(2025.2+)
截至2025.2版本,IronBarcode包被拆分为独立的托管、原生和机器学习层。 其结构反映了IronOCR和IronPDF已使用的命名约定,提供更简洁的跨平台支持以及更易于维护。
包结构
主要发行版
顶级NuGet包映射到目标平台:
BarCode: Windows的默认包,以及通用用途的主要NuGet。BarCode.Linux,BarCode.MacOS及类似的:遵循与IronOCR和IronPDF相同命名惯例的特定操作系统分发版。
内部包层
每个顶级包都是由多个内部子包组装而成,每一个负责一个关注点。
1. BarCode.Slim
持有托管核心:C#代码、互操作层,所有PDF相关代码,以及每个C#第三方依赖。 这是推动IronBarcode托管功能的核心逻辑和绑定层。
2. IronSoftware.ReaderInternals.XXX
包含原生的C++代码,用于读取、写入以及检测条形码。 针对Windows、Linux、Mac及其他平台存在特定的变体。
3. BarCode.Detection
承担机器学习检测逻辑,当前用C#编写,基于ONNX Runtime。在这个阶段,它不依赖操作系统。
BarCode.Detection最终将移动到ncnn,一个本地C++机器学习推理库,而后将引入特定操作系统的变体。
移动平台排除项
Barcode.Android中。 这次省略是故意的:在移动平台上,机器学习检测引发性能问题和兼容性限制。
好处
重构的架构提供了:
- 托管代码和本机代码之间的模块化分离。
- 干净的、针对操作系统的打包。
- 为高性能本地机器学习检测提供未来保障。
- 与其他Iron Software库更紧密的对齐。
- 更容易的维护和故障排除。

