Ok, My project works on our development station.
I use company developed dll for instrument interactions and I tell TestStand to load the specific version of the dll from the GAC using a .lvproj.config file. In order to do this I load the lvproj file in the project path of TestStand (so it becomes part of the seq file).
Then I move this all to our deployment station and our custom UI for TestStand comes up, runs no problem, it does the initial configuration of the system using some C# code, but when it tries to load the lvproj file in order to properly use the dll in the LabVIEW VIs, it says it cannot find the LabVIEW files. All of the paths are correct. What I'm suspecting is that the LabVIEW runtime doesn't understand the lvproj file.
I'm wondering... can I load that config file as *.seq.config? so it uses the right config file on start up of the main sequence? Any other way to do this? Installing the LabVIEW development environment is not an option for all of our deployments.
I can't believe nobody has encountered this.
I now have tried using the config file with the seq file and it doesn't work. Everything works fine in the development environment, but unless I can figure out a way to load the config file, I have no way to talk to my instruments.
Have you thought about calling support and opening a Service Request for this?
I believe there is not a seq.config like lvproj.config. Why are you calling the dll like that, can it be called directly as a step?
If you want to pre-load the dlls you can also configure TS to do so:
Have you tried making a .config file for the TestStand EXE in general?
I.E., go to "C:\Program Files (x86)\National Instruments\TestStand 2016\Bin" (or wherever it is on your PC) and put all of the settings into a "SeqEdit.exe.config" file?
Thanks for the responses.
Well, the embarrassing part of this is that the dll call DOES work with using the lvproj file config. Since I had never done this before and was expecting all of the problems to be with calling the dll, that's where my mind went. In subsequent phone calls and troubleshooting steps applied at the suggestion of NI support (Thanks April) it was discovered that in my deployment I was not getting all of the required VIs copied over.
The final test will be tomorrow when I can get on the deliverable station.
It would not work to call the config file on the TestStand exe itself for the simple fact that these stations test multiple units across a long timeline. Some of the test solutions were developed using older (and newer) versions of the same dll (hence the need to call the config file in the first place) and by setting that for all of TestStand, I'd break way to many other things. That's be worse than not getting my solution deployed.
Using a config file for the sequence does not work.
SO, the way to do this is to make sure that you package your LabVIEW project and have a config file for that project as part of your deployment. In the sequence file(s), you then reference the project file so that when it loads, it configures Windows to use the proper version of the dll.
In my case, I'm avoiding using a distribution from LabVIEW and TestStand because a portion of the solution is also a .NET solution. So I'm using an installer in there to handle all of the C# files, the sequences, the LabVIEW Project and all of the dependent vis. Having the "Files" tab from LabVIEW Project explorer is a huge help here in making sure I get all dependent files in the installer.