10-07-2013 03:26 PM
Hi all,
I've built a few projects now with AF and most have been going quite well. For my current project I've been following an example lvproj that had some similar features. Somehow, the libraries from the example project have become dependencies of my new project despite the new project making no calls to the example. I've been through every VI and control in the example project looking for callers via the project window, and they all show only calls within the example libraries. The exception is the Actor Core and other AF override VIs like Handle Error. When I pull up a list of callers for Example Project Library.lvlib:Actor Core, for example, it tells me Actor Framework.lvlib:Actor.vi calls the Actor Core of the example class. How is it possible for a method in a parent to call a child method? Am I going to drag all AF projects into the dependencies of other AF projects on my system via whatever is creating this dependency?
I'd like to build a packed project library out of this new project so I can reuse the code easily. Should I be concerned about these strange dependencies?
Thanks.
10-08-2013 02:15 PM - edited 10-08-2013 02:18 PM
Hi,
It is not normal behavior of a parent method to call a child method. I recommend posting your issue on the community group site for actor framework.
https://decibel.ni.com/content/groups/actor-framework-2011
Also if possible share your VI and project to get a better understanding of your code.
Regards
10-08-2013 02:15 PM - edited 10-08-2013 02:19 PM
Hi,
It is not normal behavior of a parent method to call a child method. I recommend posting your issue on the community group site for actor framework.
https://decibel.ni.com/content/groups/actor-framework-2011
Also if possible share your VI and project to get a better understanding of your code.
Regards
10-16-2013 11:35 AM
I don't seem to have posting privileges in that group, though I am a member. The link seems to be in anything that inherits from the Message class. If I do a Find Callers on any message class in my project, the Actor Framework.lvlib:Actor.lvclass:Actor Core.vi comes up as a caller.
I don't know that I can post my entire project due to the size and my company's crazy IP rules, but I'll see if I can recreate the behaviour in a simpler project.
10-16-2013 12:53 PM
Ok so this is extremely odd. In trying to recreate the issue, I created a new project from the Actor template, then opened and ran the project that created the dependency in the first place. When that didn't cause a dependency to be added to the template project (as it shouldn't), I opened up the project I was having the issue with. Behold and Lo, the errant dependencies were gone! My project now only has appropriate dependencies.
Some of the actors in my project have the same class name as those in the other project. Is it possible I was getting some dependencies added erroneously due to the names?
10-17-2013 08:44 AM
Hi,
I am glad to hear your issue was solved. It may be that you had a cross-linking issue.
“Cross-linking commonly occurs as a result of moving or copying large sets of files to reproduce a hierarchy of code in a new disk location. If relative paths change, links may become corrupt and your application may unknowingly become linked to the incorrect set of dependencies.
LabVIEW cannot load two different VIs into memory with the same name. Therefore, opening two applications that reference separate subVIs with the same name means that one executes using the incorrect dependency.”
Please refer to the following link that expands on best practices for managing the project explorer.
http://www.ni.com/white-paper/7197/en/