I'm working on an application with ETAS 400 series DAQ modules. All works great in the development environment. But when I build the exe, it builds with a broken arrow and will not run. I suspect it is due to the driver location/path.
The ETAS documentation all references C and C++ applications, and doesn't mention anything about LV. In the C environments it specifically calls for the .dlls and .llbs to be in a certain location. I've copies every library I could fine to the paths listed in the documentation, all without success. Does anybody have any ideas?
When you build the executable, do you get an error during the build process? When do you get the broken run arrow? Does it happen when you try to run the executable? Is the VI supposed to run on its own when you run the .exe?
Also, if you want to make sure that you have built the .exe correctly, this article is very helpful and can take you step by step through the process. It helps you put all of the files in the right locations and know what to include.
Solid arrow in the development environment, and runs great. App builds completely with no errors. But when you open the .exe, there is a broken arrow and states "The VI is not executable." I've built it with debugging enabled, but that isn't any help either since I can run the .exe to probe an error wire, path strings, etc..
I've seen that document in the past and just reviewed it again. Not to say I'm an expert and built hundreds of executables, but I'd done a handful without issue. So I'm fairly confident the general build setup is correct, especially since it builds w/o errors.
In looking at the project again, I did see that the file view is showing reference to the .llb I suspect is the problem is shown in an incorrect folder. However this is in the dependencies and I have yet to be able to re-point it to the correct location in my work with it this morning. More to come later...
Well, this must have something to do with the run time engine. I tried to write a work around .exe that would call my VI left in development environment with a 'Open VI Reference' to try to mimic the executable by hiding the abort button and tool bar.
Again everything worked in the devel environment perfectly. I even originally debugged it on an entirely different VI to verify it worked as intended in both development and RTE environments. But when I put the VI needed for my application in and tried to run it, broken arrow again in RTE. And a window popped up listed a ton of missing sub VIs.
These drivers use a .NET framework and in some of my research is looks like .NET can be very picky about file locations. Aside from selecting the correct .dll to use (which I've done numerous times on loading) how to I dictate where the .NET framework loads the .dll from?
It sounds like the executable file isn't seeing or doesn't have access to some set of sub-vi's. Are the sub-vi's missing from the ETAS drivers?