10-22-2008 05:23 PM
I am using LV 8.6 and using the LV report functions inside a VI. This VI is my main VI for the TS user interface. What is happening is, I built my main vi into an executable and then I am building a deployment in TS with the executeable included. I get a trmendous amount of errors when I do this saying that the vi's that are part of the reort generation in LV are not able to be loaded because they have no front panel or block diagram. So I did some investigating and sure enough the toolkit was changed to Object Oriented for LV 8.6. This explains why i can get it to build on a machine with LV8.5 installed instead of 8.6.
I was just wondering if anyone has had this problem with the toolkit and TS.
I also had a meeting with Brian Buress (field engineer for NI) and Jeff Phillips (LabVIEW product manager) they saw this activity (they were her and I showed it to them) and they could not explain it.
The problem has to lye in the fact that the report VI'S are now object oriented
10-22-2008 06:12 PM
Joe,
It sounds like when you built your UI it generated an LLB that contains VIs that do not have diagrams. There used to be a build option in LV 7.1.1 for small target file with external file for SubVIs that used that structure. Trying to deploy that LLB will generate errors because there are no diagrams for the deployment utility to process. I can think of two ways to work around this problem:
#1 Change your UI to build into a single large executable- assuming that toolkit allows this it will remove the problem but could have some effect on load time.
#2 Do NOT include the llb in your deployment- copy it to correct subdirectory of the image directory before building. When you build and are asked if you want to delete all the files in the image directory say no. The LLB will be added to the installer without modification.
-Rick Francis
10-22-2008 06:39 PM
LV is doing this not me. Because of the object oriented version of the toolkit. Do this, create a vi that only has one of any of the vi's in the toolkit. Build the vi you just created into an executeable. you will get errors stating that labview is creating folders because of naming conflicts. Then have a look at your build folder and you will see three different folders in their. NI_HTML, NI_Standard, NI_report. These are the set of VI's that will not deploy with teststand and these are created regardless of how you build the executable.I know this becasue of the white paper that I found concerning this issue. The problem is that it works with 8.5 and does not work with 8.6. the only differnce is the toolkit being object oriented. This should have been tested by NI for use with Teststand.
I could see if it were just on one machine that i was having a problem on but it is not. I get what you are saying, please do as I described and if it works for you then send me the VI's and the build script and I will see if I can repeat it. Every way that I have tried does not work.
I should not have to do anything different to any of my VI's just because NI wants to go all object oriented on us. Every person that I know of in the company is having some sort of problem with the toolkit. Either from upgrading existing projects or building new ones it just does not work all that great and the build for an exe that uses the toolkit has ballooned in size tremendously.
Let me know if you have any other Ideas.
10-23-2008 12:44 AM
Hi,
You didn't say which TestStand version you are using but if it's version 4.0 there is a patch regarding locked VI's.
http://digital.ni.com/public.nsf/allkb/62F3FD9A8EC56D268625740C005E2813
This may help.
Regards
Ray Farmer
10-23-2008 09:38 AM
I will try this. The VI's are not locked it is just the fact that they have no block diagram and no front panel. I know that there is a setting for this but it does not matter how I have that setting set for these VI's.
I will try when I get back to work on monday.
10-23-2008 01:03 PM
Joe,
From your description LV is moving some of the VIs external to the .exe- I suspect because there are dynamically dispatched VIs in the toolkit which must have the same file name. A LV exe has a single internal llb and thus cannot have two VIs with the same name in one exe. You won't be able to change any build options to change that behavior. You can use method #2 that I described above. If you are unsure where to put the files then add just the exe to your workspace and create a deployment, it should not produce errors but it wouldn't work without the support VI. Next search the image directory for the exe, copy the support VIs for the exe to the folder containing the exe and rebuild your deployment. When prompted DON'T delete the image directory. This should work around the problem. I will add a feature request for the deployment utility to only copy files without processing them.
-Rick Francis
10-23-2008 01:19 PM - edited 10-23-2008 01:24 PM
Sorry, these are not an option for me. I cannot do this for hundreds of VI's that use the toolkit and for cutomers who we build things for. NI is going to have to fix this since they broke it. I do not know what llb's you are talking about because there are none, they are folders of VIs that do not have a block diagram or a front panel. I can do it for this build but come on having to this every time is not an option. It should have worked straight out of the box. This is something that should have been caught in the testing of the toolkits. The whole reason we use teststand and LV is because of the tight integration, now it is like they are worlds apart. For all the trouble that I go through with evedry build I may as well of done it all in VC++ and Labview, it would have been much easier in the long run.
Come on NI you broke it, Now fix it
10-28-2008 09:37 PM
Does anyone else have any ideas. Everything that i have tried has not worked, Even both of the things suggested above do not work correctly. I am at a loss. I cannot revert back to LV 8.5.1 because of other issues.
ideas anyone,
10-28-2008 11:05 PM
Joe,
I am not sure if this is an option for you but this might be a workaround:
1. Create an installer for your LabVIEW user interface (UI) using LabVIEW's app builder
2. Do not include your UI in the installer built by Deployment Utility.
3. Configure the installer built by Deployment Utility to execute the installer created by LabVIEW's app builder.
Can you use this approach?
Please let me know if you have any questions with regards to the above steps.
Regards
Anand Jain
National Instruments
10-29-2008 08:17 AM - edited 10-29-2008 08:20 AM
This seems like an option. Can you tell me how to accomplish this. The only real reason that I am using the deployment utility is to install TS and the deployment license. I know how to createt the installer in LV but how do I get the installer to run after the installation of TS. How do I set up the build in TS. When I do create the build in TS will it all be included in the same folder or do I have to jump through hoops do get it correct. If it does not all go into the same folder then upper management and others will not go for it. They want a fix not a patch.
thanks,