Calling LabVIEW VIs That Invoke .NET Code in TestStand

TestStand applications like the TestStand Sequence Editor and TestStand C# User Interfaces are .NET Core processes in TestStand 2025 Q2 and later.

Consider the following to ensure functionality when using TestStand to call LabVIEW VIs that invoke .NET code and vice versa:
  • TestStand is a .NET Core process, and does not support calling LabVIEW VIs that invoke .NET Framework assemblies in the LabVIEW Runtime Engine. VIs which invoke .NET Framework assemblies can still run if you execute them in the LabVIEW ADE from TestStand.
  • TestStand supports calling LabVIEW VIs that invoke .NET Core assemblies in both the LabVIEW Runtime Engine and the LabVIEW ADE.
  • Loading TestStand UI controls in LabVIEW may cause issues, as the TestStand engine loads the .NET Core runtime by default and LabVIEW uses a .NET Framework runtime. You can prevent these issues by preventing LabVIEW from loading the .NET Framework:
    • If you are developing a TestStand user interface in LabVIEW:
      1. Open your LabVIEW configuration file at <LabVIEW>\LabVIEW.ini and add the key value pair DisableDotNetFrameworkSupport=True under the [LabVIEW] section. This prevents the LabVIEW ADE from loading the .NET Framework runtime into the process, disables any features that use .NET framework for that session, and allows LabVIEW to load the .NET Core runtime.
      2. Prevent the LabVIEW runtime engine from executing VIs which call into .NET framework assemblies by adding a new section in LabVIEW.ini named [LVRT] and adding the key value pair DisableDotNetFrameworkSupport=True below it.
      3. Enable LabVIEW to load the .NET Core frameworks needed by TestStand by copying the contents of <TestStand>\AdapterSupport\DotNetSupport\DotnetCore.runtimeconfig.json and replacing the contents of <LabVIEW>\LabVIEW.runtimeconfig.json with the copied data.
      Note You must restart LabVIEW for changes to the LabVIEW.ini configuration file to take effect.
    • If you are executing a TestStand user interface built using LabVIEW or another supported language:
      1. Open the configuration file present next to your executable. For example, in the LabVIEW User Interface shipping example, this would be TestExec.ini which is present next to <TestStand>\UserInterfaces\Full-Featured\LabVIEW\Source Code\TestExec.exe or <TestStand Public>\UserInterfaces\Full-Featured\LabVIEW\Source Code\TestExec.exe.
      2. Prevent the LabVIEW runtime engine loaded by TestStand from loading .NET Framework by adding a new section in your .ini file named [LVRT] and adding the key value pair DisableDotNetFrameworkSupport=True below it.
      3. Add the key value pairs DisableDotNetFrameworkSupport=True and DotNetCoreRuntimeConfigPath=<TestStand>\AdapterSupport\DotNetSupport\DotnetCore.runtimeconfig.json under the section with the same name as your executable to allow LabVIEW to load the .NET Core runtime and the necessary .NET Core frameworks.
      Note TestStand user interface examples possess the necessary configuration file changes to load correctly in LabVIEW.
    Note Disabling the .NET Framework is only supported in LabVIEW 2025 and later.