05-15-2008 10:04 AM
05-15-2008 12:54 PM - edited 05-15-2008 12:55 PM
05-15-2008 02:39 PM
05-15-2008 03:07 PM
NationalInstruments.Common
class library merge module default
setting causes the NationalInstruments.Common
class library to
install to the GAC along with a policy file that redirects all references to
NationalInstruments.Common
to the latest version of
NationalInstruments.Common
installed on the system. This means that
by default, applications that reference NationalInstruments.Common
use the latest version of NationalInstruments.Common
installed on
the system.05-15-2008 03:22 PM
05-15-2008 03:59 PM
05-15-2008 04:16 PM
We'll migrate our app to 8.7.1 and change our setup to use the provided merge-modules.
The field user who was having the urgent problem (and who was in the jungles of Belize) was able to restore their system and get it operational again. So the need for an immediate fix has been somewhat reduced.
I think our not using the merge modules was the root cause, since we thus didn't have the proper GAC assembly versioning policies in-place. And thus when the field user took it upon themself to install the latest DAQmx CD they happened to have, things got a little screwy....
Thanks for the help!
DT
05-15-2008 04:23 PM
05-19-2008 09:20 AM
A couple of follow-up questions:
1) While we were trouble-shooting this problem, we noticed that our field user's GAC contained not only several versions of NationalInstruments.Common (as one would expect) but also several versions of NationalInstruments.DAQmx (8.0, 8.3 and 8.5), as well as various other NationalInstruments assemblies, such as .Design, .Net, .UI, .UI.Styles3D, .UI. WebForms and .UI.WindowsForms.
Based on my understanding of your explanation of where the assemblies should be installed, I don't understand why are there copies of .DAQmx in the GAC
I know that our .msi didn't put them in the GAC. And there are no other apps using NI-DAQmx.
Is there anyway that could have been put DAQmx into the GAC when the "drivers" CD was run?
My concern is that even after we change our .msi to use your merge modules (and thus install .DAQmx into our local app's bin), there will still be some other mechanism (the NI drivers CD?) that we're not aware of that's putting .DAQmx into the GAC, which will prevent the CLR's search from finding DAQmx in the app's bin.
2) How can we completely eliminate the need to use the NI drivers CD? (actually, I've asked this question in another thread more than a year back). How can we include everything that's needed to access the NI device into our app's .msi ? What exactly must get installed on a system (in addition to .Common and its dependents and .DAQmx) in order to access the hardware? Requiring the field users to run a separate install from the NI drivers CD is, I'm afraid, contributing to the problems we're having (and the users absolutely hate running the NI drivers CD... so much that they question why we can't use some other vendor's DAQ hardware!).
Thanks,
DT
05-19-2008 09:49 AM