LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

2009 installer with DAQmx

Solved!
Go to solution

   We've been distributing a built application that uses DAQmx 8.x and LabVIEW 8.6 for several years.  I'll call the app MyApp 2.8.  We're working on a new version that uses LV 2009 and DAQmx 9.x, which we'll call MyApp 3.5.  When we build and deploy an installer for MyApp 3.5, then try to use it on a computer that already has MyApp 2.8 installed, the installer complains about dependencies and says that Both DAQmx 8.x and MyApp 2.8 must be uninstalled first.  I spoke to NI about this briefly and was told that DAQmx 9 was a fairly radical redesign that necessitated this change.

   This is inconvenient and slow for us, but nearly untenable for our customers.  First of all, MyApp 2.8 and MyApp 3.5 are compatible, and we prefer to leave MyApp 2.8 installed as a backup as people get used to 3.5.  So the customer must:
Uninstall MyApp 2.8

Uninstall DAQmx 8.9

Install MyApp 3.5 with DAQmx 9.0

Reinstall MyApp 2.8 (as if they can still find the disk!)

    Way too many steps and complications.  Furthermore, it really isn't necessary.  If the runtime engine for 2009 is already installed on the computer (for whatever reason), you can simply copy the MyApp 3.5 onto the computer and it will run with DAQmx 8.9.  But this only postpones the problem, since at some point the customer will upgrade again, and we'll have forgotten that they installed with a work-around, and...

    The really galling part is that the installer for MyApp 3.5 refuses to install until MyApp 2.8 is uninstalled.   Whereas we've proven that MyApp 2.8 will work just fine with DAQmx 9.0.

    Is anyone else noticing this issue?  Has anyone found any better work-arounds?  Is the same problem present if we skipped 2009 and went with 2010 and the latest DAQmx?

 

Thanks,

   DaveT

-------------------------------------------------------------
David Thomson Original Code Consulting
www.originalcode.com
National Instruments Alliance Program Member
Certified LabVIEW Architect
Certified Embedded Systems Developer
-------------------------------------------------------------
There are 10 kinds of people: those who understand binary, and those who don't.
0 Kudos
Message 1 of 14
(3,687 Views)

The fundamental issue here is that DAQmx 8.9 does not support LV 2009. Thus, in order to use MyApp 3.5 you have to install DAQmx 9.0. And since you cannot have multiple versions of DAQmx installed on a machine, you must uninstall the DAQmx version that's already installed. I am assuming you've created the installer to include DAQmx? The installers that LabVIEW creates are fairly simple. In complex situation you really need to create your own installer. Nullsoft is a popular open-source installer that's not too hard to use. You could create an installer that would be smarter than the NI installer.

Message 2 of 14
(3,679 Views)

   I can understand that MyApp 3.5 needs DAQmx 9.0 for LV 2009.  What is different is that in the past, new versions of DAQmx could install over old versions.  This is the first time that installing the new version of DAQmx first requires that the old version be uninstalled.  (I think...  It is possible that DAQmx installed on top of itself for versions within 8.x but that from 7 to 8 there was a similar problem.  I don't recall that far back anymore...)  Furthermore, the imposed but unnecessary dependce that requires MyApp 2.8 to be uninstalled as well is the real kicker.  2.8 runs with DAQmx 9.0.  But the NI installer forces extra steps.

 

   In any case, has anyone used NullSoft or another installer in a way that resolves the requirement that old DAQmx be uninstalled before new DAQmx is installed?

 

DaveT

-------------------------------------------------------------
David Thomson Original Code Consulting
www.originalcode.com
National Instruments Alliance Program Member
Certified LabVIEW Architect
Certified Embedded Systems Developer
-------------------------------------------------------------
There are 10 kinds of people: those who understand binary, and those who don't.
0 Kudos
Message 3 of 14
(3,673 Views)

Hi Dave,

 

Upgrades of a pre-9.0 version to a 9.x version require a full version of DAQmx. This is the 'NI-DAQmx Application Development Support 9.X' installer in the 'Additional Installers' section of your LabVIEW build specification. Is this the installer you are including?

 

Cheers,

 

Ecleamus R.

 

0 Kudos
Message 4 of 14
(3,618 Views)

Ecleamus,

   Not quite.  The installers I am including are LV RTE, MAX 4.7, DAQmx Core Runtime 9.1.5, DAQmx MAX Config Support 9.1.5, and VISA Runtime 5.0.  I'm not including App Dev Support, which I wouldn't think I would need to since this is for an executable, not a development environment.  In any case, once the install is done, it works fine, so I'm guessing I don't have issues with what I am including.

   I understand that 9.x is a full upgrade from 8.x, and although it is annoying that 8.x has to be uninstalled first, that by itself would be bearable.  The worst part of the problem is that the NI installer insists on uninstalling the previous version of MyApp, since it is a DAQmx dependency (or DAQmx is a dependency of it?, whatever...)  Whereas I've proven to myself that such a dependency is artificial and unnecessary.  I just now did an install in which I renamed the C:\Program Files\MyApp directory so that the uninstaller couldn't find it.  I then uninstalled DAQmx 8.x, installed my new program with DAQmx 9.x, and then finally renamed the MyApp directory back to its original name.  The old MyApp worked just fine.  By fooling the installer, I showed that the dependency isn't necessary.  But it can royally screw with the customer when they try doing an upgrade.

   It would be great if NI could improve the installer to eliminate this unnecessary complication.  Maybe this is why the first response suggested using a different installation tool...


DaveT

-------------------------------------------------------------
David Thomson Original Code Consulting
www.originalcode.com
National Instruments Alliance Program Member
Certified LabVIEW Architect
Certified Embedded Systems Developer
-------------------------------------------------------------
There are 10 kinds of people: those who understand binary, and those who don't.
0 Kudos
Message 5 of 14
(3,614 Views)

 

Hi Dave,

 

From your description - I think you might have two upgrade issues going on: one for DAQmx and one for MyApp. EcleamusR can best answer your DAQmx question, but I might be able to help you with your "MyApp" upgrade issue.

 

By default, every build of your installer will upgrade (i.e. uninstall) a previous version. In your case, 3.5 will upgrade 2.8. To change this behavior in LV 2009, you can right-click on your Installer under "Build Specifications" in the LV Project tree, and choose the "Duplicate" option. This will cause a new GUID to be created for the new installer specification. The result is that a project built from this new specification will install without touching the old one. Just be sure that you change the "Installer Destination" directory in the new specification so they don't install on top of each other. 

 

Please let me know if this isn't clear...

 

Regards,

- WesW

0 Kudos
Message 6 of 14
(3,589 Views)

WesW,

   Thanks for the additional ideas.  I don't think they quite pertain.

   To simplify the explanation, I didn't mention that we have two or three different applications that are undergoing upgrades.  So we have MyApp1, MyApp2, and MyApp3 that are all distinct, are installed in different directories, have different names, etc.  However, when I try to install MyApp2's new version using DAQmx 9.x on a computer that has MyApp1's old version with DAQmx 8.x, I get a message that says DAQmx must be uninstalled first.  So I go to Add/Remove Programs and use the NI Software entry to remove DAQmx 8.x, at which point it insists that I remove MyApp1 due to dependency issues..

   My continuing conclusion is that DAQmx and LabVIEW executables used with a LV-created installer create dependencies that don't need to be enforced.

 

DaveT

-------------------------------------------------------------
David Thomson Original Code Consulting
www.originalcode.com
National Instruments Alliance Program Member
Certified LabVIEW Architect
Certified Embedded Systems Developer
-------------------------------------------------------------
There are 10 kinds of people: those who understand binary, and those who don't.
0 Kudos
Message 7 of 14
(3,586 Views)
Solution
Accepted by topic author Dave_Thomson

 

DaveT,

 

You are correct - for that aspect of the problem - my proposed solution will not help. At the cost of a larger installer, including the full version of DAQmx will likely give you the upgrade experience you desire. If web download size is a concern, perhaps you could provide two builds of your product - one with the full DAQ (for those that have your older product) and one with the smaller DAQ (for those doing a clean install)?

 

Besides that, hacking some registry keys to remove the dependency I guess is sort of an option, but it's probably not the type of solution you were looking for. (We're currently researching adding some extra capabilities in the NI Uninstaller to allow ignoring of certain dependencies, but nothing is available currently).

 

Regards,

- WesW

0 Kudos
Message 8 of 14
(3,555 Views)

WesW,

   Thanks for the info.  An upgrade to the uninstaller to allow ignoring those dependencies is really what I'm hoping for.  I realize it won't be anytime soon, but knowing that it is in the works is good.

   Hacking the registry sounds like the only possible short-term solution.  Ideally, we could supply a registry file that the end-user would double-click on which would then alter the registry to erase the dependencies.  I'm not sure I want to try to create such a beast, though...  And I'm guessing that the registry edits would (could) be specific to the MyApp names, etc., so it may not be possible for NI to create a generic registry file.  Probably would need to be more of a dynamic program that searches out the dependencies...

 

Regards,

   DaveT

-------------------------------------------------------------
David Thomson Original Code Consulting
www.originalcode.com
National Instruments Alliance Program Member
Certified LabVIEW Architect
Certified Embedded Systems Developer
-------------------------------------------------------------
There are 10 kinds of people: those who understand binary, and those who don't.
0 Kudos
Message 9 of 14
(3,544 Views)

Hi Dave,

 

While not officially supported by NI, you can trick the check for pre-9.0 versions by passing a command line option to your installer (i.e. /prop DAQMXVERSIONNUMERIC=900). I still recommend deploying the Full version but if you're considering registry hacks, this is a lesser evil Smiley Happy

 

Cheers,

-Ecleamus R.

0 Kudos
Message 10 of 14
(3,533 Views)