10.3 在应用程序中添加 HALCON/.NET

10.3.1 在 .NET Core 应用程序中添加 HALCON/.NET

为了充分利用 .NET Core 的跨平台特性,该接口提供了两个软件包变体。它们都包含完整的 HALCON/.NET 和 HDevEngine/.NET 语言绑定。

MVTec.HalconDotNet

该软件包以 .NET Standard 2.0 为目标,可用于 HALCON 支持的所有架构。

MVTec.HalconDotNet-Windows

该软件包以 .NET Core 3.1 为目标,此外还包括 Windows 窗体和 WPF 控件,用于将 HALCON 窗口集成到 GUI 应用程序中。由于其他 .NET Core 3.1 实现不提供 Windows 窗体或 WPF 支持,因此该软件包只能在 Windows 上使用。

使用以下命令在项目中添加软件包引用:


dotnet add package <PACKAGE_NAME> -v 23050

虽然 NuGet 使用 SemVer 来对软件包进行版本控制,但 HALCON 版本并不兼容 SemVer。为避免不必要的冲突,.NET Core 软件包通过将主版本、次版本和修订版本合并为一个新版本,从而获得与 SemVer 兼容的版本,例如:.NET Core 版本:

HALCON/.NET 不是一个独立的软件包,而是本地 HALCON 库的一个接口。因此,项目使用的软件包版本必须与已安装的 HALCON 版本完全一致。

即使是在应用层面向后兼容的维护版本,也不建议混合使用不同版本的二进制文件,因为 HALCON/.NET 和本地 HALCON 库之间的内部通信无法保证始终兼容。因此,HALCON 版本的修订也是 SemVer 主版本的一部分。SemVer 次版本和补丁版本是为软件包本身完全向后兼容的中间版本保留的。有关更新依赖关系,参见".NET Core" 一节

要离线使用软件包,请从 NuGet 网站下载。考虑在项目中添加 nuget.config 文件。这有助于从文件系统可靠地获取源代码。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
     <add key="LocalHalconPackages" value="path/to/package" />
  </packageSources>
</configuration>

使用 HALCON XL 开发应用程序时,请选择以下 XL 软件包:

关于与 HALCON 升级相关的 HALCON/.NET 升级,参阅 ".NET Core" 一节

10.3.2 在 .NET Framework 应用程序中添加 HALCON/.NET

您可以通过以下步骤将 HALCON/.NET 添加到应用程序中:

对于第一个应用程序,请自定义 Visual Studio 的工具箱(参见 "自定义 Visual Studio 的工具箱" 一节 )。

为每个应用程序添加 HALCON/.NET 引用("添加 HALCON/.NET 引用" 一节 )并指定命名空间("指定命名空间" 一节 )。

10.3.2.1 自定义 Visual Studio 工具箱

HALCON/.NET 程序集不仅提供了一个类库,还提供了一个控件:HSmartWindowControl(或 HSmartWindowControlWPF),其中包含一个用于可视化图像和结果的 HALCON 图形窗口。

旧版控件 HWindowControl 仍可用于向后兼容,但强烈建议新项目不要使用该控件(有关区别的信息,参见 "可视化窗口控件" 一节 )。

您可以通过以下步骤将这些控件添加到 Visual Studio 的工具箱中。请注意,在不同版本的 Visual Studio 中,确切的菜单名称略有不同:

  1. 右键单击工具箱并选择 选择项目(Visual Studio 以前版本中的 自定义工具箱)。这将打开一个对话框,在标签页中显示所有可用的 .NET Framework 组件。
  2. 单击 浏览 ,导航到 %HALCONROOT%\bin\dotnet20%HALCONROOT%\bin\dotnet35 目录,然后选择 HALCON/.NET DLL。
  3. 工具箱中会出现 HSmartWindowControl 和旧版 HWindowControl 的图标。

HALCON XL 应用:  ! 
请注意,只有在需要 HALCON XL 功能时才使用

使用 HALCON XL 开发应用程序时,请选择 HALCON/.NET XL DLL 而不是 HALCON/.NET DLL。在工具箱中,控件名称相同,但图标不同。您可以将两个 HALCON 版本都添加到工具箱中,但只能将其中一个添加到应用程序中。

10.3.2.2 添加 HALCON/.NET 引用

在许多应用程序中,您将至少使用一个 HSmartWindowControl 实例来可视化结果。通过将该控件添加到窗体(如 "为可视化添加和自定义 HSmartWindowControl" 一节 所述),您将自动创建对 HALCON/.NET DLL 程序集的引用。

如果不想使用 HSmartWindowControl,请添加如下引用:

  1. 右键单击解决方案资源管理器中的 引用,然后选择 添加引用
  2. 单击 浏览,导航到子目录 %HALCONROOT%\bin\dotnet20%HALCONROOT%\bin\dotnet35 并选择程序集 HALCON/.NET DLL。

HALCON XL 应用:  ! 
请注意,只有在需要 HALCON XL 功能时才使用

使用 HALCON XL 开发应用程序时,请选择 HALCON/.NET XL DLL 而不是 HALCON/.NET DLL。如果您已经添加了对 HALCON 版本的引用,只需删除该引用并添加对 HALCON/.NET XL DLL 的引用。