01-20-2011 11:13 AM
This DLL is called from one of the VI in the project, so it is in the dependency list. Because it is already installed in Windows\System32 by another program, I do not want to include it in the installer. However, when I remove it from the INSTALLER properties view, it removes all the other dependencies and the executable.
How do I remove only this DLL from the installer? If it is not possible, it there a way to run a batch file after the installer finishes?
I am using LabVIEW 8.6f1.
01-21-2011 01:14 PM
By default, the call library node automatically includes the dll file in
the executable as a supporting file. So you will not be able to select
the dll alone as the executable showing under the installer option is
seen as a single file. In order to override this behavior, configure the
call library node to specify the file path on the block diagram. This
can be done by double clicking the call library node and checking the
option "specify path on diagram" under the "function" tab. This option
creates a reference in and reference out as input and output terminals
on the connector pane for the node. Furthermore, any library referenced
in the Library name or path control (within the call library node) will
not be used.
With this modification, the executable will
exclude the the dll in the build specification. However, you need to
manually add the dll to the project explorer in order to access it in
the installer specification.
In the installer settings, move
the executable to the programfile folder and the dll (showing under My
Computer) to the system folder. This will create only one copy of the
dll in the system32 directory.
Note the dll path you specify
must match the final dll destination directory if you decide to use a
constant path rather than control path.
David A.
01-21-2011 01:54 PM
I am using a .NET constructor node instead of a Call Library node. Is there a similar option to specify the file path?
Thanks.
01-24-2011 01:41 PM
Give this link a try and see if this helps solve your issue. This example is from the NI Community page and goes through steps of how they created this example with screenshots.
David A.
01-26-2011 09:53 AM
It is not the same use case for me. I am trying to call a .NET object but I don't want to include the DLL in the installer. Is there a way in the installer to run a custom clean up step? Thanks.
01-27-2011 05:29 AM
Strictly speaking .Net DLLs are either in the Global Assembly Cache (GAC) or in a private location. The Windows sytem folder is in that context a private location. LabVIEW at least in earlier versions took this very literal meaning to include any .Net DLL as build dependency unless it was located in the GAC. For a .Net DLL to be part of the GAC it needs to be "strongly named" meaning it needs to have a valid signing.