LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How to assign a version to a vi library

I am using InstallShield to deploy my application. The vi's are
stored in libraries and then run via a VI loader application.

When the application is installed, I am having trouble updating files
intelligently due to the versioning rules of the MSI engine. For
example, if the created date and the modified date of a LLB are the
same on the target machine, the file will not be updated even if the
LLB in the installer is newer. What I need to do is assign version to
the actual library, like an executable has. Does anyone know how to
do this?
0 Kudos
Message 1 of 7
(3,232 Views)
Tim Erickson wrote:

> I am using InstallShield to deploy my application. The vi's are
> stored in libraries and then run via a VI loader application.
>
> When the application is installed, I am having trouble updating files
> intelligently due to the versioning rules of the MSI engine. For
> example, if the created date and the modified date of a LLB are the
> same on the target machine, the file will not be updated even if the
> LLB in the installer is newer. What I need to do is assign version to
> the actual library, like an executable has. Does anyone know how to
> do this?

You can't! Versioning in executable files (including DLLs) is done by
adding a version resource to the Windows executable image file format.
LabVIEW VI libraries are LabVIEW private f
ormats and do not have a
Windows executable image format, just as almost any other file on
Windows doesn't have it.

Your best bet is actually to "touch" the file before adding it to the
MSI archive. There are several utilities out there to do that. Another
possibility is to actually Open the file in LabVIEW, read a single
character in there and write the same character back. This should also
affect the last modification timestamp.

Rolf Kalbermatter
Rolf Kalbermatter  My Blog
DEMO, Electronic and Mechanical Support department, room 36.LB00.390
0 Kudos
Message 2 of 7
(3,232 Views)
You can version a DLL and then link the files in the installation to the DLL. Then you don't have to worry about the version of the LV files; you just need to associate the installation files to the versioned DLL.
Doug
Enthusiast for LabVIEW, DAQmx, and Sound and Vibration
0 Kudos
Message 3 of 7
(3,232 Views)
hi there
we wrote ourselves a tool which sets the revisionnumbers of all vis in a folder/llb to the new versionnumber of the application, right after a masscompile and before creating the installer. Also the comment in the revision-history of the vi is set to a the version-number + the date. both can be accessed via properties of the vi. by doing so all vis have the same revisionnumber, which is very neat when the revisionnumbers are shown in the title-bar at edit-time. also all vis have the same date.

regards
chris
Best regards
chris

CL(A)Dly bending G-Force with LabVIEW

famous last words: "oh my god, it is full of stars!"
0 Kudos
Message 4 of 7
(3,232 Views)
chrisger wrote:

> hi there
> we wrote ourselves a tool which sets the revisionnumbers of all vis in
> a folder/llb to the new versionnumber of the application, right after
> a masscompile and before creating the installer. Also the comment in
> the revision-history of the vi is set to a the version-number + the
> date. both can be accessed via properties of the vi. by doing so all
> vis have the same revisionnumber, which is very neat when the
> revisionnumbers are shown in the title-bar at edit-time. also all vis
> have the same date.

That is nice, but it won't help with MSI. MSI does not know about
LabVIEW versioning at all and there are little options to try to teach
it about that.

Rolf Kalbermatter
Rolf Kalbermatter  My Blog
DEMO, Electronic and Mechanical Support department, room 36.LB00.390
0 Kudos
Message 5 of 7
(3,232 Views)
hi
you are right, rolf. but all related vis (and the llbs) are "touched" and have the date when the vi-revision has been set.

regards
chris
Best regards
chris

CL(A)Dly bending G-Force with LabVIEW

famous last words: "oh my god, it is full of stars!"
0 Kudos
Message 6 of 7
(3,232 Views)
Hi, this is the second time I have tried to reply, but I have not seen my answer post yet, so I apologize if you have already seen this.

As for the installer, one option is to ship a DLL (with the proper versioning). Then you can link the appropriate non-versioned files in the installer to the DLL. I have used this technique in an installer, and it worked for me. The LLBs were installed and updated correctly according to the version of the DLL.
Doug
Enthusiast for LabVIEW, DAQmx, and Sound and Vibration
0 Kudos
Message 7 of 7
(3,232 Views)