运行 LabVIEW 可执行文件时出现“VI 不可执行”错误

更新 Aug 18, 2023

适用于

软件

  • LabVIEW
  • LabVIEW Runtime
  • LabVIEW Application Builder Module

操作系统

  • Windows

问题详述

  • 尝试在我的开发或部署机器上运行我的 LabVIEW 可执行文件时,我收到以下错误:
该 VI 不可执行。需要 LabVIEW 的完整开发版本来修复这些错误。
  • 当我加载我的应用程序时,我看不到我的 LabVIEW 类加载到内存中。我应该如何打包它们?

解决方案

发生此错误的原因有多种,要采取的步骤取决于错误是仅发生在部署机器上,还是会在开发环境和目标机器上重现。评估错误并相应地完成以下步骤。

部署机器错误

如果此错误仅出现在您的部署计算机上,原因通常是缺少特定版本的 .NET Framework ,或者缺少/未许可的驱动程序或 DLL。如果您仅在部署计算机上遇到此错误,请先尝试以下步骤:
  • 在部署机器中安装在开发机器中用于构建可执行文件的 .NET 版本。您可以从Microsoft 网站下载缺少的 .NET Framework 版本。查看附加信息以获取有关确定您安装的 .NET 版本的信息。
  • 确保可执行文件使用的所有 NI 和第三方驱动程序和依赖项都安装在尝试运行可执行文件的计算机上。此外,请确认您拥有相同版本的驱动程序并且它们已正确获得许可

部署和开发机器错误

如果您在开发和部署计算机上都看到此错误,请尝试以下步骤。如果上述步骤没有解决部署端可执行文件的错误,这些步骤也很有用,因为它们可以帮助缩小错误原因的范围并更普遍地解决它:
  • 尝试批量编译您用于创建可执行文件的项目并再次创建可执行文件。
  • 如果您正在使用 XControls 或类型定义控件,您可以尝试勾选程序生成规范中的断开自定义类型选项,并将 XControls/类型定义控件添加到始终包含部分。
  • LabVIEW 可执行文件可能找不到来自第三方 DLL 的依赖项,因为它们尚未与可执行文件一起部署。要解决此问题,请将被调用的 DLL 放置在与可执行文件相同的文件夹中(确保它们不在子文件夹中),问题应该得到解决。您可以在可执行文件的构建中包含 DLL ,并将输出文件夹更改为与可执行文件相同的文件夹,以避免复制文件。
  • 尝试远程调试可执行文件以确定错误发生的位置。这将为您提供有关错误原因的更多信息。
  • 尝试与解决错误 1502所述的相同步骤,尤其是在构建可执行文件时遇到任何错误时。
  • 当使用 LVOOP 并希望实现插件架构时,您应该使用获取 LV 类默认值  VI 的路径来动态加载 LabVIEW 类。检查源文件设置以查看 LV 类的输出文件夹在哪里,对动态调用的 LV 类使用“始终包含”选项。如果您不使用插件架构,那么您可以将 LV 类直接放在框图中。通过这种方式,Application Builder 应该可以识别正在引用的类,您不必在应用程序属性中选择“始终包含”选项。请记住,当应用程序启动时,您的类可能不会加载到内存中,即使它们包含在可执行文件中也是如此。

相关信息

您可以按照以下步骤检查安装在 Windows 上的 .NET 版本:
  1. 单击开始»运行(或者按 <Windows 键 + R>)
  2. “运行”对话框中键入regedit
  3. 在注册表编辑器程序中,导航至Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP并展开此文件夹以查看此 PC 上安装的所有版本的 .NET Framework。
一些使用早于 Windows 10 的操作系统开发的应用程序使用 .NET Framework 2.0 和 3.5。默认情况下,Windows 10 不附带 .NET Framework 2.0 和 3.5,因此必须安装这些框架才能解决此问题。