06-02-2011 04:42 AM - edited 06-02-2011 04:43 AM
I often have problems sending updates to customers that cannot be executed due to conflicts in DAQmx libraries; it normally happens that my development machine (which I regularly update with new CVI releases or service packs) gets a newer DAQmx release than the one installed on customer PC.
This is a severe problem since downloading and installing a 1.2 GB update can be really annoying for customers. Anyway, since it seems there is no other solution (apart maintaining separate PCs with fresh installations of every CVI+DAQmx release I developed applications on, which is not practical nor economical and it may infringe NI licensing policy
) I would like at least to give a meaningful warning to the user, someting like "Installed DAQmx driver is 8.5; to run this application you must install DAQmx 9.0 or better": it will be a lot better than having the customer calling me and saying "Hey! Your update wouldn't run! It gives a strange error about don't-know-which DLL in the system!"
To obtain this I should embed the release of DAQmx installed in development system anywhere in the executable so that I can retrieve it at startup, check with installed driver in the running system and prompt the warning if needed: how can I automatically embed it in the executable?
Or is there a different approach so that I can have some DAQmx release on my development machine but produce a exe that runs on an older one?
06-02-2011 07:58 AM - edited 06-02-2011 07:58 AM
I guess you could write a small application that gets the DAQmx version numbers and writes them out as #defines to a .h file. You could then specify that app to run as a Custom Build Step each time the real application is built (assuming custom build steps work properly these days).
06-17-2020 07:38 AM
HI,
I have been running into the same issue with my software. I don't remember which version of DAQmx was used to create the software. Upgrading the remote systems DAQmx is not an option. Is there any way to determine which version a program was compiled with? I don't understand why every time they update the driver you need to re-compile your exe and the old software doesn't work with the new driver. It is rediculous and extremely hard to keep track of which software was written with which driver. I use to not update my drivers unless necessary. When I upgraded from CVI 2015 to 2019 it updated all my drivers and is still causing me major headaches.
Mike