10-28-2020 09:52 AM - edited 10-28-2020 09:59 AM
Hi!
First time for me building a packed library to control a motor, please forgive me if I'm missing something obvious here. It features some safety mechanisms so I basically want the user to have access only to "init", "Main Control", "Close" and some "Get" VIs (like get velocity/torque etc.).
For that in my project library I've set up two virtual folders: "Public API" and "Private". Obviously in Public I have the VIs mentionned above and in Private I have all of the hidden code ensuring control and safety basically.
I don't really want the user to see the "Private" virtual folder (Because they don't need to) so I've set its access scope as ... *Drum roll* ... Private!
I'm sure you already see the problem: After building my packed library, my main control won't execute because "This VI uses a dependency that has changed. That change requires this VI to recompile. This VI is compiled into a Packed Project Library and cannot recompile by itself. You must rebuild the Packed Project Library to account for the changed dependency."
If I change back the access scope to public, then everything runs fine.
I don't know if that's important, but some of my VIs (in Private) use a DLL that is being exported in the same folder. But I typically have "sub-libraries" to my main library as shown below
Is it not possible to prevent user to see some VI but still leaves VIs access to Private access scope?
Thank you in advance for your help.
Best,
Vinny
10-28-2020 10:43 AM
Can you supply an example project that shows the issue? I have been something similar for a few years and have yet to run into this issue.
10-29-2020 05:49 AM
So are you saying this is not a normal behaviour?
Sadly no I'm not allowed to share any code 😕
However, I noticed that in the build specifications, if I enable debugging, then I don't have any issues, everything works fine. If I don't enable debugging then I have one single vi that won't execute. All the others are fine. That puts other internal libraries as well as external DLLs out of the equation.
Enable Debugging On
Enable Debugging Off