06-23-2020 09:24 AM
I know .lvlib exists. But from what I can tell, you cannot distribute a lvlib around without the VIs going with it or the VIs being in a network location. Is there a LabVIEW version of a zip where you distribute a single file and when loading that singular file into your LabVIEW project, it includes VIs and controls and in a folder structure? I could have sworn there is something. I just don't remember.
06-23-2020 09:42 AM
I think what you are looking for is an LLB.
06-23-2020 09:42 AM - edited 06-23-2020 09:44 AM
@DailyDose wrote:
Is there a LabVIEW version of a zip where you distribute a single file and when loading that singular file into your LabVIEW project, it includes VIs and controls and in a folder structure?
indeed, a .llb is slighty compressd according to this:
also see this discussion:
https://forums.ni.com/t5/LabVIEW/llb-versus-lvlib/td-p/1911595
The llb was created back in the old days when file names were limited to the 8.3 format. They really don't serve much of a purpose anymore. They are not safer than an lvlib[...]. A single corrupt VI in an llb will make the whole llb unreadable. Since you can zip up a lvlib, the single file arguement is not understandable either. An lvlib also integrates with source code control and this is something you had better be using.
06-23-2020 10:02 AM
There is also the option of compiling into PPLs, if you don't mind not being able to edit the code in the new project.
06-23-2020 10:13 AM
Hi Dose,
@DailyDose wrote:
I know .lvlib exists. But from what I can tell, you cannot distribute a lvlib around without the VIs going with it or the VIs being in a network location. Is there a LabVIEW version of a zip where you distribute a single file and when loading that singular file into your LabVIEW project, it includes VIs and controls and in a folder structure? I could have sworn there is something. I just don't remember.
You can create a distribution file, which basically is a ZIP…
(See the options when creating a BuildSpec.)
06-23-2020 10:30 AM
Kind of sounds like llb is frowned upon for the most part. I only asked all this because I made a lvlib for a colleague, zipped up the entire thing and sent it to him and was thinking... what was the point of the lvlib in that scenario? Oh well.
06-23-2020 10:40 AM
Yeah, generally the only thing I use llbs for is something like sending a quick drop shortcut to someone if I'm to lazy to make a vip.
I would say in your situation of sending a zipped up lvlib to a colleague, the lvlib is still important because it allows them to see how you have organized the VIs - eg: which ones are public and they will want to use, which ones are private and they don't need to worry about as much.
06-23-2020 11:08 AM
@DailyDose wrote:
what was the point of the lvlib in that scenario? Oh well.
Using lvlibs isn't really helpful for simple distribution. You can just use a regular .zip file for that. Lvlibs provide other useful features. Think of them like a folder with extra options. They're generally used when you have a bunch of VI's that need to work together. Some examples of when they're useful:
-Namespacing: Say you have a library to open connections to external instruments. If you have a VI called "Open connection" then you can only have one of those in a project. If you put all of your library functions in an lvlib called "Multimeter Interface" then you don't have to worry about name collisions, and each library in your project can have its own Open Connection.
-Access scoping- If your group of files you're distributing is a toolkit for someone else to use, you may have some VI's that are intended for the end user to have access to, and some that you would rather them NOT have access to. In an lvlib, you can scope the first set of VI's to be "Public" and the second set as "Private". Anyone trying to call a Private VI from outside of the library will be unable to, as it'll generate an error. (Yes of course they could edit the scoping; it's more of a "keep out" sign than a security guard).
-Project-like viewing capability: If you have a folder full of files it can be hard to know which specific files belong to a specific group of functions. If you have an lvlib in there, you can open up the lvlib file and see a list of all of the vi's, folders, etc that are intended to be used in that library.
If you don't see the use for them right now, then you probably don't need one 🙂 I personally have found them most useful with LVOOP and Actor projects to keep all of my Actors separated.