LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

labview 8.2 application builder - installer deletes previously installed programs

Problem Description :

I've been developing with LabView for 8+ years and recently had to upgrade from 6.1 to 8.2 because of compatibility issues with LabView, MAX, DAQ and SERIAL. LabView had always been so intuitive and efficient, but that has changed to some degree sometime after 6.1 IMO.  I won't get further into that, but I am having several problems with Application Builder and particularly, with creating an Installer and installing test programs.  I haven't seen many posts on this subject so I assume I am doing something wrong.

In 6.1, I could build a program and create an installer in minutes, and all in the same step - Click on Build and the installer was created. I could also locate my files anywhere I wanted. Unfortunately the process in 8.2 is no where as simple as one has to create a build and installer separately. So far, I haven't been able to distribute my installer files where I want them according to our internal procedures. The build portion works fine and I can locate my files as needed, but not so for the installer (at least I haven't figured it out yet).  The main problem is that I have some common DLLs that I'd like to locate in a common directory for all of my programs, but it seems like I'm stuck putting them in the installation directory of every program that I write.  Again, it is fine in build.  There doesn't seem to be any flexibility in changing the location of the files in the installer.  I did see a post somewhere that mentioned that DLL files must be located in the system directory if you don't want them included in the build or installation.  I would just like to install the dlls to a common directory and not include them in every installation directory.  Just like I did in LV 6.1!

This is a relatively minor problem compared to what happens when I try to install the programs.

I have five separate programs for which I have recently built and created installers with the limitations that I've described above. I can install one program on my machine and it runs properly. If I try to install any of the

other four, they will delete the previous installation - all the files are deleted (they all have different names). What I think is going on is that the installer thinks that these five programs are the same and simply overwrites the previous installation. One reason I believe this, is because I tried an installation and it failed with the error message that there was already a higher version installed. The higher version it was referring to was almost certainly the one program I could install, but certainly not a higher version of the one I was trying to install (it didn't exist yet). After I uninstalled the one program, I could install any other four. It doesn't matter if I install on  the build computer or the target computer (ATE).

What am I doing wrong?  Please help me to resolve this problem.

I wan't the build and install files in the same exact location:

Example of my five programs and the locations of build and install:

C:\KIK2-LabView\Customer Name\Base Part Number1\Program1.exe.......

C:\KIK2-LabView\Customer Name\Base Part Number2\Program2.exe.......

C:\KIK2-LabView\Customer Name\Base Part Number3\Program3.exe.......

C:\KIK2-LabView\Customer Name\Base Part Number4\Program4.exe.......

C:\KIK2-LabView\Customer Name\Base Part Number5\Program5.exe.......

The support files will also be put in the corresponding directories. The common files were supposed to go in the KIK2-LabView directory instead of copies in every installation directory.

Is there something I have to do with the registry? In 6.1 it was all automatic.

I hope there are simple answers to my problems, but I have yet to find them out. I have been able to find very little info on Application Builder, and nothing that is comprehensive.

Thanks!

 

0 Kudos
Message 1 of 4
(3,264 Views)
Hey jdubya!

We are always glad to hear that someone else has been enjoying programming in LabVIEW. The upgrade from LabVIEW 6.1 to 8.2 is quite substantial so I can certainly understand that there might be a little bit of pain there. The Project and Build Specifications were added to LabVIEW to help organize large projects and the new method of building EXEs and installers is actually quite a bit more flexible, but it is certainly different from how things were configured in LabVIEW 6.1. The first resource that I would point out for the new application builder is the Help file. This is a fairly good resource and has a lot of good information about what the different options mean.

Specifically regarding your question, you have several EXEs that you would like to install in very specific locations along with some other additional support files. Is that correct? If so then this can actually be easily done using the new Installer Build Specification. Once you have all of your EXE Build Specifications built you can then create a new Installer. If you wanted to create separate installers, make sure that the Product name is different. That way you can eliminate the possibility of creating duplicate installers.

The power of the Build Specifications can really be seen on the next few configuration pages. Specifically we are interested in the Source Files section. On this page you can configure where you would like everything to go. In this case it sounds like you would like to create a folder called "KIK2-LabView" in the windows volume where you can place the support DLLs and then place the actual EXEs in the appropriate folder (ie. "\Customer Name\Base Part Number1\Program1.exe"). The different bracketed categories in the Destination View represent relative paths. In this case we are interested in [Windows Volume] which on most computers is C:\ and is basically the drive where Windows lives. If you right-click on that folder and select New Folder you can build any hierarchy that you would like which will be created when the installer is run. Once you create all the folders up to the Base Part Numberx folder you can then place the EXE build specifications in the proper locations. This method will allow you to install multiple EXEs with a single installer.

One important thing to point out is that the project isn't only for LabVIEW files. It can actually be used to organize any file type, including DLLs. To place DLLs in a specific location, all you need to do is include them in your project, navigate to them under the Project View (you will most likely need to expand My Computer to see any files added to the project not specifically included in the other Build Specifications) and then move them to the correct file location in the Destination View. This will place those files in the correct place once the Installer is built and run.

Hope this helps!
Andy F.




-----------------------------------------------------------------
National Instruments
0 Kudos
Message 2 of 4
(3,234 Views)

Thank for the reply, Andy

I have scoured the Help files and this forum which helped me to create the build and installer, but they didn't address any of the problems that I described in my post.  I tried to make sure that I exhausted numerous resources before posting and requesting help.

I appreciate the response, but you didn't quite get to my most important problem - that when I try to install a program from the created installer, it overwrites my previously installed program.  Actually I have found the answer in a different thread. --->  http://forums.ni.com/ni/board/message?board.id=140&message.id=16146.  My problem is that I cut and pasted all of my project files and made the appropriate changes specific to each new project.  If you don't create brand new builds and installers in these projects, you will create duplicate registry keys, even though all of the names, numbers, files, etc. were changed to be completely unique.  I opened the .lvproj file in notepad and found several registry keys to be the same; here is an example:

<Property Name="UpgradeCode" Type="Str">{831013BF-9112-45AA-BF13-A13F08098841}</Property>

All of the projects that I created by cut and paste (and edit) method had this same exact key (as well as other keys) which was causing the previous install to be deleted/overwritten or gave me the message that a higher version already existed.  Again, this happened even though all of the project data was completely unique after it was edited, including the project filename (of course).  Finally, I completely rebuilt my projects from scratch starting with "New Project" and voila, they now all install properly.  Obviously, none shared any of the same registry keys. 

I don't know if this is something that was overlooked, but it is so much easier to cut, paste and edit projects when they are very similar.   Unfortunately I have found out the hard way that new build and install spec's must be created.  Is there a change that can be made to the Project File in LabView so that when certain information changes (like the executable file name) that new registry keys will be generated?  It is obvious that you don't want someone to accidentally install a lower version of the project over a newer one, but it would have prevented my work time loss (several days) and will prevent time loss for others in the future as well.  Could you at least consider allowing the developer to generate new keys like was available in LabView 6.1?

Also concerning the location of files, I previously had done all of what you said and can locate the build files where I want.  However, in the Installer (Source Files Tab), when I create the folders in [Windows Volume], all of the files from the build spec are put into the SAME directory, regardless of where they were located in the build spec.  If I try to delete one file, all will be removed.  I can't place individual files where I want them to go in the installer (if they are a part of the build).  Example:  In the installer, I created the subfolders KIK2-LabView\Customer\UUT Base Part Number on the [Windows Volume] directory and set the UUT Base Part Number as default.  I want most of the files to go into the default directory, but a few of the dependent dll's should go into the KIK2-LabView folder as they are common to many other programs/projects.  In short, I don't need or desire 50 copies of these dlls on my ATE.  I was able to locate the installer files anywhere in LabView Pro 6.1, but so far I can't figure out if this is possible in 8.2.  It would appear that it is not.

Thanks,

John W.


 

0 Kudos
Message 3 of 4
(3,215 Views)
Hi John,

If I understand correctly you use several installers for the different programs?

What if you create exe/dll builds for all the programs, but one installer?
Or one installer per exe and one for the common files?
What you could do is add a readme/license file that states clearly (bold size 20) that the directories should not be changed.
But if you install the dll's you can place them wherever you want because the installer registers them!

Ton
Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
Nederlandse LabVIEW user groep www.lvug.nl
My LabVIEW Ideas

LabVIEW, programming like it should be!
0 Kudos
Message 4 of 4
(3,195 Views)