LabVIEW 中 .NET 出现的异常

更新 Nov 29, 2023

适用于

软件

  • LabVIEW

问题详述

LabVIEW如何处理.NET异常?

解决方案

调用.NET对象属性或方法时抛出的任何异常都会转换为LabVIEW错误1172。此错误表示LabVIEW从您调用的API中收到了.NET异常。您会看到典型的错误消息类似于:
1172,kLVE_DotNetException,发生了.NET异常。 

这类错误的根本原因与.NET异常消息有关,因为1172是所有.NET异常的通用错误代码。
  1. 在LabVIEW 8.0及更高版本中,系统通过将.NET异常消息属性放入错误集群中的错误源字符串,向错误消息中添加更多信息。您只需要解绑源元素就可以查看有关异常的其他信息。
  2. 在LabVIEW 7.x中,显示出来的唯一信息是发生了.NET异常。如要在LabVIEW 7.x中解决此错误,请尝试以下操作之一:
  • 确保您使用的.NET程序集保存在顶层VI的根目录中。
  • 通过选择Tools»Advanced»NET Assembly References,在LabVIEW中添加.NET程序集作为引用 。单击“ 添加”按钮,然后将 .NET程序导航到要调用的所有程序集的位置。

相关信息

在LabVIEW 8.0及更高版本中,如果您使用“手动错误处理”,则只会收到额外信息。有关错误处理的更多信息,请参阅NI LabVIEW中的处理错误

从LabVIEW调用.NET程序集的其他注意事项包括:
  • 私有程序集必须与调用程序放在同一目录中。
  • 必须在GAC中安装共享程序集,其中包括从网络驱动器调用的程序集。有关安装到GAC的信息,请参阅将程序集安装到全局程序集缓存中
  • 如果您想要构建一个应用程序,请确保将程序集包含在其中。 LabVIEW Application Builder会自动将未在GAC中注册的程序集保存到data子目录中。您必须使用构建的应用程序发布data目录。
  • 发布构建的应用程序时,请确保目标计算机安装了与所调用的.NET程序集对应的.NET Framework。
  • 使用探针工具确保最初由.NET构造函数节点VI创建的.NET对象引用是有效的。
  • 使用第三方.dll 可能会导致出现.NET异常。此时LabVIEW只会给出一个通用的错误消息,说明.dll出错了。在这种情况下,请联系第三方.dll提供商以进行进一步的故障排除。
有关更多信息,请参阅LabVIEW中使用.NET程序集的要求