I'm trying to simplify my application build process. Currently, whenever I make a new build, I take the current build and change the build spec name, target filename and destination directory manually.
I'd like to have a pre-build VI run that changes the build target filename and destination directory based on the auto-incrementing version number. I've found GetTargetBuildSpecs.vi in ...\vi.lib\AppBuilder\, but can't find any property nodes that let me set the build spec properties that I want to.
Anyone have info on this?
Solved! Go to Solution.
there is probably a better way but the proj file is just XML or something similar so you could hack the proj file and change the name.
I did find a pile of proj and build VIs (VI/lib project) but no documentation or a clue how to use them .
Yeah, editing the XML was mentioned in http://forums.ni.com/t5/LabVIEW/Build-executable-and-installer-programmatically/m-p/911384/highlight.... I'll look into that, but it may be more trouble than it's worth for my case.
The worst part of all this is that I'm almost certain that I've seen this before, i just can't remember where I saw it or what my search query was
Could it have been OpenG? I've never tried doing builds other than "manually", but seem to recall seeing "Application Builder" VIs in the OpenG library.
The only thing I found in OpenG is "Dist Build App rom LLB (proxy)" which doesn't seem to help. It could be that I don't have all the OpenG packages installed, but I do have everything that's listed on VIPM.
I've been screwing around with all the files in vi.lib/AppBuilder. I'll be sure to post if I find something that works. But if anyone has done this before, it would make my job a lot easier...
I'm not at all sure that a VI server API exists for these settings. If you look at the app builder itself (in <resource>\framework) and at the vi.lib VIs, you will see that they all use LV classes and that the properties you want don't appear when you select the build. It's quite possible that all the code to manipulate these settings is done directly by the AB VIs.
That's what I've been finding. I see a whole bunch of class methods, most of which are private in scope. Ah well. I've created an Idea that adds the ability to easily change these things. Hopefully it gets enough publicity to be added into LV2013.
...so hacking thproj file and using the app build functions exposd on the palette should work.
I'll ping support to see what we have been missing.
For a real thrill, add that folder to a project, find one of the classes and show Class hiarchy. THen do a ctrl-a to show all. The class hiarchy alone looks like the VI hiarchy of a medium sized app.
From that experiment I suspect the parent class of the app builder has the methods we need...but are they exposed?
Have you check the code available in the NI example finder? I believe you can find there some examples that can get you started. Please go to Programmatically Controlling VIs»Manipulating Application and VI Settings. I'm attaching the interesting ones. I hope this helps!