Each record of the IsolatedComponent table associates the component specified in the Component_Application column (commonly an .exe) with the component specified in the Component_Shared column (commonly a shared DLL). The IsolateComponents action installs a copy of Component_Shared into a private location for use by Component_Application. This isolates the Component_Application from other copies of Component_Shared that may be installed to a shared location on the computer. See Isolated Components.
To link one Component_Shared to multiple Component_Application, include a separate record for each pair in the IsolatedComponents table. The installer copies the files of Component_Shared into the directory of each Component_Application that is installed.
The IsolatedComponent table has the following columns.
Foreign key into the Component table. The component that contains the shared file, usually a DLL. The DLL should be the key file for this component. This must be a different component than listed in the Component_Application column.
The shared component controls the registration for all the isolated copies of the component and must have the msidbComponentAttributesSharedDllRefCount flag set in the Attributes column of the Component table. This ensures that the installer can manage the life of the shared component.
Foreign key into the Component table. The component that contains the .exe which loads the shared file. The .exe should be the key file for this component. This must be a different component than listed in the Component_Shared column.