Migrating from XJRunnerIntegration.dll to XJIntegration.dll

If you are updating a project which used the XJRunner .NET Integration from a pre-3.9 XJTAG version, there are some changes that you will need to make so that your project will continue to work correctly with the new XJIntegration DLL. These are the breaking changes to the .NET integration between version 3.8 and 3.9:

  • The name of the integration DLL has changed from XJRunnerIntegration.dll to XJIntegration.dll.
  • The namespace of all types has changed. Types previously in the XJTAG.XJRunner.Integration namespace are now split between those in the XJTAG.Integration and XJTAG.Integration.XJRunner namespaces.
  • The name of the class representing the project has changed from Project to RunnerProject.

C# Projects

To resolve these changes for a C# project:

  1. Copy XJIntegration.dll from the XJTAG Bin directory () to your project directory, alongside the .csproj file. Then replace the old reference to XJRunnerIntegration.dll with a new reference to XJIntegration.dll, setting CopyLocal to True.
  2. Where files contain using statements referencing the integration, replace XJTAG.XJRunner.Integration with XJTAG.Integration or XJTAG.Integration.XJRunner as required.
  3. Replace all instances of the old Project class with RunnerProject.
  4. Do a full Rebuild of the project by clearing the contents of the project output directory and then clicking Build in Visual Studio.

After these changes have been made, the C# project should build using the new XJIntegration DLL.

LabVIEW Projects

For a LabVIEW project, each VI that has .NET nodes which use XJRunner Integration types will need to be updated:

  1. When each VI is loading, if the previous version of XJTAG has been uninstalled, LabVIEW displays a dialog explaining that it can't find XJRunnerIntegration.dll, asking for the new location. Click Cancel here, since the new DLL has a different name. If the previous version of XJTAG has not been uninstalled, continue to the next step.
  2. For every input and output terminal on front panel of the VI that is a .NET refnum, check whether it is an XJRunner Integration type. If it is, then right-click the refnum, then choose Select .NET Class and click Browse.... Click the Browse... button on the dialog, and select XJIntegration.dll inside the XJTAG Bin directory. Then choose the required class in the bottom part of the dialog.
  3. If the front panel contains an XjtagOutputBox control, you will need to re-select its type in a similar way to the previous step. Right-click on it, and select Insert .NET Control.... Browse to the XjtagOutputBox in the XJTAG.Integration namespace within XJIntegration.dll.
  4. On the block diagram, find any .NET constructor nodes for XJRunner Integration types. These will need to be re-selected by right-clicking and choosing Select .NET Constructor. Browse to the correct type in XJIntegration.dll as described above. Do the same for any static invoke or property nodes in the block diagram.
  5. Use the Error List window (accessed through the View/Error List menu item) to determine which further nodes should be re-selected. For each "Invalid property" error or similar in the list, re-select the property by clicking on the property name on the node and re-selecting the property from the dropdown.
  6. When the only remaining errors for the VI are "SubVI is not executable", continue onto the next VI and repeat this process from the beginning.
  7. If at this point XJRunnerIntegration.dll is still in the project dependencies (under Dependencies in the Project Explorer window), right-click it and select Why is this item in Dependencies?. Open VIs which appear in this dialog, and first re-select all XJRunner Integration nodes, and then all .NET nodes linked to the XJRunner Integration nodes (including null .NET refnums and event parameters).