Actor Framework Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Actor.vi broken after building to EXE

Solved!
Go to solution

I have a project that uses the Actor Framework. It runs fine in LabVIEW dev, but if I build to an EXE, the launcher immediately throws error 1003: SubVI (Actor Framework.lvlib:Actor.lvclass:Actor.vi) is not executable. I'm relatively inexperienced with the guts of the AF, and the nuances of Application Builder.

 

I tried these things, but they didn't resolve my issue.

  • Always include: Actor Framework.lvlib
  • Always include: AF Debug.lvlib
  • Always include: <vilib>\ActorFramework\*
  • Mass Compile: <vilib>\ActorFramework
  • Mass Compile: .\resource\AFDebug
  • Disable "Remove [front panel, block diagram]" for all VIs
  • Enable Debugging + wait on launch

Through remote debugging (which I just learned about today), I opened up Actor Framework.lvlib:Actor.lvclass:Actor.vi inside the EXE. LabVIEW Runtime is right: this VI is broken in the build. Most of the SubVIs it calls (listed below) are greyed out and the error window shows Bad Linkage to SubVI. I can open each of them without issue, so I believe they're included in the EXE package.

  • EXE\1abvi3w\vi.lib\ActorFramework\Message Priority Queue\Obtain Priority Queue.vi
  • EXE\1abvi3w\vi.lib\ActorFramework\Actor\Count Actors.vi
  • EXE\1abvi3w\vi.lib\ActorFramework\LastAck\Send Last Ack.vi
  • EXE\1abvi3w\vi.lib\ActorFramework\Message Priority Queue\Release Priority Queue.vi
  • EXE\1abvi3w\vi.lib\Utility\error.llb\Error Cluster From Error Code.vi

My application does not use "Open Actor Core Front Panel?" anywhere, which I only mention because this seems to be a common cause for similar errors.

 

I have another project that uses the Actor Framework. It can build and run as an EXE just fine. I've confirmed all settings in the Build Specification are the same for both projects.

 

I've spent a few hours on this already, and I'm stumped. Any suggestions for debug?

0 Kudos
Message 1 of 3
(3,936 Views)

Have you tried clearing the compiled object cache and building again?  Sometimes that fixes issues.

Sam Taggart
CLA, CPI, CTD, LabVIEW Champion
DQMH Trusted Advisor
Read about my thoughts on Software Development at sasworkshops.com/blog
GCentral
0 Kudos
Message 2 of 3
(3,920 Views)
Solution
Accepted by topic author OneOfTheDans

I dug through the EXE some more and found statically linked VIs that the Application Builder didn't identify as dependencies, so they never got included in the EXE. Thus my child Actors were broken, which I think either confused the Application Builder, or the Runtime Environment. Either way, the Actor Framework parent Actor loaded as broken in the EXE.

 

The fix was setting "Always include" for essentially everything in my project (disk & memory usage be damned!). I ended up not needing to include Actor Framework.lvlib, or AF Debug.lvlib, or enabling Debugging. The vanilla Build Spec worked once I explicitly included all my VIs.

Message 3 of 3
(3,900 Views)