Hi Dennis,
normal installer packets, like Install Shield, are able to detect all DLLs which are statically linked. The reasion is that a DLL as each executable file has a PE (Portable Executable) Header at the beginning of the file. In the PE header is a table referring to all DLLs which is used by this DLL. The only exception is the case when a DLL is linked dynamically with the WinAPI call LoadLibrary or LoadLibraryEx. This way you can build a tree of all depending DLLs. VIs don't have this header. But LV can read VIs and is able to build a tree of DLLs stating with the DLLs in a Call Library Node.
I made a test:
I created a DLL in the folder G:\Projekte\ETL 2.0\DLL. The DLL is named ETLKWP.DLL. This folder is not part of the PATH environment variable.
I creatd a VI named CallDLL.vi with a Call Library Node linked to a function in ETLKWP.DLL. I stored it in G:\Projekte\LVSupport.
I used AppBuilder. CallDLL.vi is the top level. The application was named Test.exe and build in G:\Projekte\LVSupport. The files in the folder are: CallDLL.vi, Test.exe and ETLKWP.dll. The Application builder copied the DLL from its original location to the folder where the exe is. I think this is done because the original folder of the DLL is not part of the PATH environment variable.
Next I checked the Create Installer box. In the Files... Dialog the exe and the DLL are in the "Files in installation" list.
Conclusion:
The AppBuilder finds the DLLs and puts it in the Destination Directory and in the installer package when they are in a location which is not part of the PATH environment variable of the current locked in user. This makes sense because the DLLs in the PATH are found by the system.
Waldemar
Using 7.1.1, 8.5.1, 8.6.1, 2009 on XP and RT
Don't forget to give Kudos to good answers and/or questions