"The VI Is Not Executable" Error When Running a LabVIEW Executable

Updated Apr 14, 2022

Reported In

Software

  • LabVIEW
  • LabVIEW Runtime

Operating System

  • Windows

Issue Details

When trying to run my LabVIEW executable on my development or deployment machine, I receive this error: 

This VI is not executable. The full development version of LabVIEW is required to fix the errors.
 

Solution

If this error is appearing only on your deployment machine, the cause is often a missing version of the .NET Framework, or a missing/unlicensed driver or DLL. Try the steps below first if you are encountering this error exclusively on your deployment machine:
  • Install the .NET Framework that the application uses in the development machine. You can download the missing version of .NET Framework from Microsoft's website. Check Additional Information for information on determining what versions of .NET you have installed.
  • Make sure all NI and third-party drivers and dependencies being used by the executable are installed on the computer trying to run the executable. Also, verify that you have the same versions of the drivers and that they are licensed correctly.

If you are seeing this error on both your development and deployment machine, try the steps below. These steps are also helpful if the above steps do not address the error for deployment-side executables, as they can help to narrow down the cause of the error and address it more generically:
  • Try mass compiling the project you used to create the executable and create the executable again.
  • Try debugging the executable remotely to identify where the error is occurring. This will give you more information on what might be the cause of the error.
  • If you are using XControls you can try checking the Disconnect Type Definition option in the Build Specifications and add the XControls to the Always Included section.
  • Try the same steps outlined for addressing Error 1502, especially if you encountered any errors while building your executable.
  • There might be dependencies from a 3rd party DLL that the LabVIEW executable cannot find because they have not been deployed with the executable. To work around this issue place the DLL being called in the same folder as the executable (make sure these are not within a subfolder) the problem should be fixed. You can include the DLL in the build of the executable and change the output folder to be the same as the executable to avoid copying the files.
  • When using LVOOP and looking to implement a Plugin architecture, then you should use the paths to load the LabVIEW classes dynamically using the Get LV Class Default Value VI. Check the Source File Settings to see where is the output folder of the LV class, use the "Always Included"  option for the LV classes being called dynamically. If you are not using a plugin architecture then you can place the LV classes directly in the block diagram. In this way, the Application Builder should identify that the class is being referenced and we don't have to select the "Always Include" option in the application properties.

Additional Information

You can check the versions of .NET installed on Windows by following the steps below:
  1. Click Start » Run (Alternatively press Windows Key + R)
  2. Type regedit in the Run dialog box.
  3. In the Registry Editor program navigate to Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP and expand this folder to view all versions of .NET Framework installed on this PC.
Some applications that were developed with older OS than Windows 10 use .NET Framework 2.0 and 3.5. Windows 10 does not come with .NET Framework 2.0 and 3.5 by default, so installing these frameworks would be necessary to fix the issue.