Categories
Windows Installer, Application Compatibility and Deployments

How to Implement DLL Isolation in Wise Package Studio?

Advertisements

“DLL Isolation” is used when our application needs to have a specific version of a shared DLL for its functionality. This just copies the DLL into the same folder as the EXE that needs it.

Steps to Follow (Wise Package Studio):
1. On the Components tab in Setup Editor, right-click the .DLL you want to isolate.
2. From the right-click menu, select New > Isolated Component. The Isolated Component Details dialog appears where you pick a file for isolation from the feature that contains the component.
a. If the key path for the current component is not an .EXE, then the drop-down list shows all .EXEs in the containing feature that are key paths of .DLL files.
b. If the key path for the current component is an .EXE, then the drop-down list shows all files from the containing feature that are key paths other than the current component.
3. From the Associated File drop-down list, select the .EXE you want to assign to this .DLL.
4. Click OK.

The limitation is that we can only have one version of the DLL loaded in memory at a time. I.e., App A loads DLL version 1 and then App B tries to load DLL version 2 but can’t. App B ends up hanging or blowing up.

Reference: WPS for Newbies

1 reply on “How to Implement DLL Isolation in Wise Package Studio?”

You can create isolated components so that a destination computer’s existing files will not be overwritten with your application’s installed files. If an existing file is overwritten with a file that you are installing, there may be problems with an application that existed on the computer before the install.

When a file has been included in an isolated component, the file will be installed into the application’s installation directory rather than a Windows system directory.

In this case, one of the components can be placed in the same directory as the application, and a file created with the same name as the application executable, with an extension .LOCAL. Then the local component will be used by preference by this application (other applications will use the non-local component, or their own local components).

Because the same registry entries are used for both copies of the component, the components need to be binary compatible for this to work. Hence these registry components are given a shared count under properties.

Leave a Reply

Your email address will not be published. Required fields are marked *