Make a non-COM Component in an Existing Package Private

An administrator can force a client application to always use the same copy of a non-COM server in an existing package—without affecting other applications—by specifying an isolated components relationship between the server and client. This installs a private copy of the server component to a location used exclusively by the client application. The administrator needs to use transforms or a package authoring tool to do the following:

  • Put the server DLL and the .exe client in separate components.
  • Enter a record in the IsolatedComponent table with the client component in the Component_Shared column and the client application in the Component_Application column. Include the IsolateComponents action in the sequence tables.
  • Set the msidbComponentAttributesSharedDllRefCount bit in the Component table record for Component_Shared. The installer requires this global refcount on the shared location to protect the shared files and registration in cases where there is sharing with other installation technologies.