02-20-2008 01:41 AM
02-20-2008 02:20 PM
Hi Lorenzo,
I first wanted to make clear what we support with regards to DAQ
versioning. The DAQmx API is backwards compatible meaning that we
guarantee running older versions of a DAQ application against a newer version
of the DAQ driver will work and won't break your application. This
basically means that the requirement for DAQ versioning we support is that
whatever version of the DAQ driver you build against (in this case 8.6), the
target machines must have at least that version or higher installed. This
means that your customers need to all have version 8.6 on their machine if you
are building a DAQmx application against the 8.6 driver. This is a stance
that NI has made as a whole. This is the recommended and supported
practice for using DAQ and therefore I am highly recommending that you follow
this practice. To ensure this practice, the best option for you since you
have 8.6 on your dev machine is to build against 8.6, create an installer that
includes the DAQ assemblies and the DAQ 8.6 driver and install that on your customer’s
machine. This will ensure that those machines have 8.6 and the 8.6
assemblies. In this scenario, you won't have any problems at all.
Now, if you want to try and workaround that (which I don't suggest), your best
option is to componentized your application. By that I mean have a main
EXE that first checks to see what version of the DAQmx driver is installed and
depending upon that check, the app loads a "8.3" DLL which loads the
DAQmx 8.3 assembly or a "8.6" DLL which loads the DAQmx 8.6 assembly.
To set that up, I believe you could essentially have two separate projects in
your solution with one for 8.3 and one for 8.6. For each project, you
would reference the specific DAQmx assembly (i.e. 8.3 would reference 8.3 and
then 8.6 would reference 8.6). You would need to load them through
reflection via Assembly.LoadFrom in order to load up the specific
version. You would need to keep those different versions of the DAQmx
assemblies in different folders. You might find better options that what I have suggested but this is just something to ponder on. You may have to twirk some things along the way,
but I believe this should work.
Again I would recommend my first option if at all possible.
Hope this helps!
Best Regards,
02-21-2008 01:55 PM
02-21-2008 03:03 PM
02-22-2008 12:51 AM
02-22-2008
08:04 AM
- last edited on
07-09-2025
01:35 PM
by
Content Cleaner
HI Lorenzo,
That post did talk about LabWindows/CVI for a specific reason. You see, LabVIEW and LabWindows/CVI both sit on top of our meta-deployment framework which means that when you create an installer in those IDEs, you have the option of bundling the actually hardware driver with it. In this case, you can bundle the DAQ driver as shown in the attached LabWindows/CVI screenshot. The reason I mentioned CVI is because we actually allow users to choose "watered-down" versions of the DAQmx driver in that IDE (as well as LabVIEW).
Currently, Measurement Studio doesn't support this framework and thus there's isn't a direct way to bundle your .NET application with the low-level drivers. This is something that we are considering implementing in future versions of Measurement Studio. Therefore after you create your .NET application installer (which contains the DAQmx assemblies, your actual application, any .NET dependencies, etc), you will need to somehow bundle the downloadable version of DAQmx which is the full DAQmx installer. In this case, you don't have access to the watered-down versions of DAQmx.
So for those customers who had CVI or LabVIEW, I suggested build a CVI or LabVIEW installer that just had the watered-down versions of DAQmx and then combine that with the .NET installer.
The DAQ team is aware of the "large" footprint that the DAQ installer makes and is always trying to reduce that size. We did have reduced run-time engines for DAQmx 8.3. Now if you would like, I can always build a "reduced DAQmx" installer in CVI for you and post that to our FTP site. If that's and option you would like to consider, let me know which run-time engine (5, 4, 3, etc) you would like.
Best Regards,
02-22-2008 10:26 AM
02-22-2008 11:13 AM
02-22-2008 11:40 AM
02-23-2008 07:45 AM
Hi Jonathan
Ok by me as I would not expet any software to be forward compatible unless you wright a software cristal ball but then I only create inhouse programs.
Colin