I have four VI's that use the same .NET dll (this is not a strongly named .Net Assembly). I am building my system on a network where the VIs reside in the following area G:\DE\TS\ATE\VI\Sub\Utilities\Comms\. The dll is placed in C:\Windows\System32\. Everything works fine at this point.
We now try and deploy the teststand workspace including the VIs to the C: drive of the Test system. So the VIs end up in a folder along the lines of C:\bob\VI\ and a copy of the dll ends up in the folder C:\bob\data\.
The first problem arises when we try and load the workspace in Teststand from the C: drive of the Test system. This is solved by deleting the new copy of the dll.
Then when you try to run the sequence file, it fails at the first VI with the link to the dll.
What is happening is that the VI is trying to load the dll from a relative path which does not exist. How can I store an absolute path for the dll within the VI.
At the moment, once the deployed system has been installed on a new system, I have to open the four offending VIs and relink them to the correct dll, which is obviously not what is wanted.
Any suggestions anyone?
According to this KnowledgeBase article, you need to place your DLL under either of the three:
Try to build an installer rather than just copying the executable to the deployed machine. Use a batch file to manually copy the DLLs to your system32 directory or use other methods listed in the KB.
I hope this helps,