SystemLink Forum

cancel
Showing results for 
Search instead for 
Did you mean: 

Write Skyline Tag in Exe - Missing DLL

Solved!
Go to solution

I made a simple application that runs on a PC that is registered as a Systemlink client.  I am getting an error while I call the "NI Skyline Tag AMQP.lvclass:Open Tag AMQP.vi" to create a new systemlink tag.  I have narrowed down where this error happens.  It never happens in the developer environment.  It only happens when running in an exe on a computer that doesn't have the LabVIEW Developer Environment.  So for example, I can run the exe on my development laptop - no problem.  If I try to run this exe on the SystemLink client laptop that just has the runtime environment, I get the error. 

I am thinking that the build is missing DLL's that the Open Tag AMQP.vi uses - mainly the "niskyline_tag.dll"

Does this seem reasonable?  If so, why does my exe build specification not include the dll?  It certainly includes all the vi's that call the dll's, so I would have expected it to make it into the build.

Steven Dusing
CLA, CTA
0 Kudos
Message 1 of 5
(3,328 Views)

I am specifically getting Error -251039 in my executable.  "NI Skyline Tag AMQP.lvclass:Open AMQP Configuration.fi:2820001 <ERR> Unable to load a client library.  Ensure the NI SystemLink Client is installed."  Does this match what you're seeing.

 

I have (of course) installed SystemLink Client on my deployment computer and even installed the real-time option.  Also, the version of the deployment PC matches my development PC (SystemLink Client 19.0.1)

 

Did you ever solve this issue?

0 Kudos
Message 2 of 5
(3,247 Views)

Thanks for the reminder! Yes, we did solve this issue and the error you are seeing is the error we got.  The reason is that the build specification has a bug where it does not currently pull in all the needed dll dependencies (as we suspected).  We were able to confirm this by copying the dll's to a new PC that had the exe installed on it and after moving the dll's to alongside the exe, the application worked fine and we no longer got errors.

 

The dll's you'll need are going to be at C:\Windows\System32 or C:\Windows\SysWOW64 depending on if you're running 32 or 64 bit LabVIEW.  The dll's that we needed were:
niskyline_tag.dll, niskyline_file.dll, and niskyline_message.dll.  There may be others that you'd needed depending on your application.

Steven Dusing
CLA, CTA
Message 3 of 5
(3,234 Views)
Solution
Accepted by sdusing

There's a bug in the SystemLink Client installer where the 32-bit client libraries do not get installed on a 64-bit Windows machine. We don't recommend including DLLs next to your EXE. Instead, you can manually resolve the missing dependency in a couple ways:

 

  • When building a package that includes your EXE
    1. On the dependencies page, uncheck the box to Automatically select dependencies
    2. Click the Filter options button and check the box to show All visible packages
    3. Enter a Search text of SystemLink Client
    4. Check the box next to the runtime for each SystemLink API used by your application (e.g. NI SystemLink Message Client x86 Runtime)
      Package DependenciesPackage Dependencies
  • Manually installing the missing dependency on the deployment machine
    1. Install the SystemLink Client if you haven't already
    2. Open NI Package Manager
    3. Click the Gear in the upper-right and check the box to Show available packages and feed management tools
    4. Switch to the PACKAGES tab
    5. Uncheck the box for Products only
    6. Check the box next to the runtime for each SystemLink API used by your application (e.g. NI SystemLink Message Client x86 Runtime)
    7. Click the INSTALL button

These issues should be resolved in the next version of SystemLink.

Message 4 of 5
(3,203 Views)

Thank you both for giving me more information on this bug.  I'm following the manual install method and that is working great for me.

0 Kudos
Message 5 of 5
(3,186 Views)