Extracting COM Registration Data at Build Time

InstallShield 2018

Project • This information applies to the following project types:

Basic MSI
InstallScript MSI
Merge Module

By selecting Yes for a component’s COM Extract at Build setting, you indicate that you want InstallShield to scan the component’s key file for COM registration data whenever you build a release that contains that component. The extracted information is placed into the release so that Windows Installer registers the COM server when it is installed or advertised. All the necessary registry settings made by the component are extracted when you select Yes for this setting.

Unlike the Component Wizard, the build process does not write the extracted COM information to the project (.ism) file. Instead, it is dynamic, in that it is updated each time that you rebuild. It also means that you can rebuild an existing release through InstallShield or the command line even when you do not have write access to the project file.

Note • The PATH system variable on the build machine must be set to include the directories of all of the .dll files to which the COM server links; otherwise, the file will fail to register and COM information will not be extracted.

The build feedback (displayed in the Output window and in the build log files) details the registration information that was extracted.

Tip • If you are using InstallShield on a 64-bit system, InstallShield can extract COM data from a 64-bit COM server. In order to install the data to the correct locations, the component must be marked as 64 bit. To learn more about 64-bit support, see Targeting 64-Bit Operating Systems.

Resolving Conflicts

Despite selecting Yes for the COM Extract at Build setting, you can still specify COM information under the component’s COM Registration advanced setting and in the component’s Registry explorer. The existing information will always be registered when the component is installed.

If entries are detected under COM Registration, InstallShield asks you if you want to delete them if Yes is selected for the COM Extract at Build setting. If any conflicts are found during the build, you receive a warning about the item in the advanced setting that was overwritten with the dynamically acquired data.

Even with these safeguards, you might want to check the COM Registration advanced setting and the component’s registry data to verify that the entries are intentional and do not conflict with the data extracted at build time.

See Also