Building an application on Agilent T&M Toolkit has been pretty easy in the past but deploying the app was a right pain in the rear. You had to install the Agilent IO Libraries, instrument drivers, the .NET Framework redist and the Toolkit redist before you ever get to installing your Toolkit based app. Even worse, using the Visual Studio .NET Setup and Deployment project to create a MSI setup resulted in a installation program that picks up a ton of unwanted dependencies. For instance, the following Toolkit program uses Toolkit assemblies, IO Libraries and an Agilent 34401 IVI-COM driver:
Notice all the COM servers, type lib DLLs and PIAs that get detected. If the user builds and installs this setup, all of those extra files get installed into the application’s folder and COM servers and type libs get registered in this new location!! Nevermind the fact that the setup is installing a bunch of files that it doesn’t need to, it is likely going to break the target system! Re-registering COM servers in a different location from their “actual” official install location is bad.
Toolkit 2.0 makes this much better although it doesn’t clean up the situation entirely. Here is the same project with its detected dependencies under Toolkit 2.0:
Notice that many of the IVI Shared Component files, VisaCom files and Toolkit files no longer show up under Dependencies. In the case of Toolkit, we actually provide a merge module (MSM) for Toolkit 2.0 that gets “merged” into your setup project so that you don’t need to install Toolkit 2.0 redist separately. Your setup program will install the necessary Toolkit 2.0 redist files itself. As for IVI Shared Components and VisaCom files, we created an AgilentIoLibrariesExclude.msm merge module. This merge module will get added automatically to the dependencies list if any of the files in it are detected as dependencies. Ideally (and as we instruct) the user should set the Exclude property on this merge module to “True”. This will effectively remove any of the files in the merge module from the setup program. This is what we want because the “right” way to install these files is to install Agilent IO Libraries Suite 14.0.
Note that there are a few files associated with the Agilent 34401 IVI-COM driver listed that I have marked as “Exclude = True“. These files should only be installed by the instrument driver install program. It would be nice to have merge modules for all Agilent IVI-COM drivers but since you have to run script code to actually integrate the driver into the IVI configuration store it is not a chip shot for a merge module. I guess we would have to supply a custom action in the merge module and then that custom action would have to be sequenced and called from the setup program using the merge module.
Now when you build and install a setup program using Toolkit 2.0 all you have to do is:
- Install Agilent IO Libraries Suite 14.0 first, which takes care of the .NET Framework Redist install.
- Install any instrument drivers.
- Install your Setup program.
- Configure any logical names used by your program (if any) in the IVI Configuration Store using the Agilent Instrument Explorer.