解决方案
发生此错误的原因有多种,要采取的步骤取决于错误是仅发生在部署机器上,还是会在开发环境和目标机器上重现。评估错误并相应地完成以下步骤。
部署机器错误
如果此错误仅出现在您的部署计算机上,原因通常是缺少特定版本的 .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 应该可以识别正在引用的类,您不必在应用程序属性中选择“始终包含”选项。请记住,当应用程序启动时,您的类可能不会加载到内存中,即使它们包含在可执行文件中也是如此。