I've got several IVI-compliant drivers I've written for test equipment we're planning to use. These drivers were written in C# (.NET) and located in C:\Program Files\IVI\bin (like the other IVI instrument-specific drivers), registered as COM objects and placed in the GAC so the IVI Session Factory can find them. I've written a small C# test harness that utilizes the Session factory to open the drivers, and then make them run their instrument self tests. It then closes the drivers.
The test harness works great. As far as the test application knows, I'm talking to the IVI class driver, not a particular instrument. I can even take my test harness executable and move it to different directories and it still works.
If I do an operation-for-operation translation of the C# test harness into a TestStand (3.1) script, the IviSessionFactoryObject.CreateDriver() call barfs, complaining that it can't open the driver: "Exception has been thrown by the target of an invocation. Root Exception:Unable to open driver for VXI_DMM" (VXI_DMM is the logical name of the instrument in the IVI Configuration Store).
The troubling thing is that it WORKS for IVI drivers that I've downloaded from vendors, it's only my own that break. Since it's only my drivers, it is apparently something I'm doing wrong. Is there a howto anywhere for installing .NET dlls as COM objects for general system use?