LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How do I exclude a dependency DLL from the installer?

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.

0 Kudos
Message 1 of 6
(3,999 Views)

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.

National Instruments
Applications Engineer
Message 2 of 6
(3,983 Views)

I am using a .NET constructor node instead of a Call Library node. Is there a similar option to specify the file path?

 

Thanks.

 

 

0 Kudos
Message 3 of 6
(3,975 Views)

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.

National Instruments
Applications Engineer
0 Kudos
Message 4 of 6
(3,946 Views)

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.

0 Kudos
Message 5 of 6
(3,933 Views)

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.

Rolf Kalbermatter
My Blog
0 Kudos
Message 6 of 6
(3,916 Views)