Component Settings

InstallShield 2013

Project: Component settings are available in the following project types:

Basic MSI
DIM
InstallScript
InstallScript MSI
InstallScript Object
Merge Module
MSI Database
MSM Database
Transform

The settings in the Components view (and the component settings in the Setup Design view) are organized into the following main categories:

General
Target Machine
.NET Settings
Run-Time Settings

General

When you select a component in the Components view or the Setup Design view, the following settings are available in the General area:

Component Settings in the General Area

Setting

Project Type

Description

Destination

Basic MSI, DIM, InstallScript, InstallScript MSI, InstallScript Object, Merge Module, MSI Database, MSM Database, Transform

Select the folder on the target system into which the component’s files should be installed, or click the ellipsis button (...) to select or create a directory.

To install the files to the product’s default destination folder, select the appropriate location, depending on which project type you are using:

[INSTALLDIR]—in a Basic MSI, DIM, InstallScript MSI, Merge Module, MSI Database, MSM Database, or Transform project
<TARGETDIR>—in an InstallScript or InstallScript Object project

Project: In Basic MSI, InstallScript MSI, MSI Database, and Transform projects, if you want the destination to be configurable at run time, the destination folder that you select must be a public property (containing all uppercase letters).

Note that in some project types (Basic MSI, InstallScript MSI, MSI Database, and Transform), you can also set the destination folder of a component’s feature. For information on the effects of setting the destination for a feature as well as its components, see Component Destination vs. Feature Destination.

In InstallScript and InstallScript Object projects, if you are installing files to WINSYSDIR64, you may need to select Yes for the component's 64-Bit Component setting. Otherwise, files being installed to WINSYSDIR64 may be redirected to SysWOW64, the 32-bit Windows system folder. For more information, see Targeting 64-Bit Operating Systems with InstallScript Installations.

Destination Permissions

Basic MSI, DIM, InstallScript MSI, Merge Module, MSI Database, MSM Database, Transform

To set permissions for the component’s destination folder, click the ellipsis button (...) in this setting.

Note: Unless you need to designate specific permissions, it is recommended that you leave this setting undefined so that normal user permissions can apply to the destination folder.

Component Code

Basic MSI, DIM, InstallScript MSI, Merge Module, MSI Database, MSM Database, Transform

Enter a GUID that uniquely identifies this component. To have InstallShield generate a different GUID for you, click the Generate a new GUID button ({...}) in this setting.

Shared

Basic MSI, DIM, InstallScript, InstallScript MSI, InstallScript Object, Merge Module, MSI Database, MSM Database, Transform

Project: The behavior of this setting varies slightly, depending on whether the project type is Windows Installer based (Basic MSI, DIM, InstallScript MSI, Merge Module, MSI Database, MSM Database, or Transform project) or InstallScript based (InstallScript or InstallScript Object project).

For a Windows Installer–based project—Specify whether you want to mark this component’s key file as shared. If the installation installs the key file and Yes is selected for its component’s Shared setting, a reference count is created in the registry—if it does not already exist—and incremented.
For an InstallScript-based project—Specify whether you want to mark this component as shared. If the installation installs the component’s files and Yes is selected for the component’s Shared setting, a reference count for each of the component’s files is created in the registry—if it does not already exist—and incremented.

Note that the installation increments any existing reference count for any file in a component regardless of whether you mark the component as shared. However, if no reference count exists, the installation does not create one unless you select Yes for this Shared setting.

For more information, see Managing Reference Counts for Shared Files.

Permanent

Basic MSI, DIM, InstallScript MSI, Merge Module, MSI Database, MSM Database, Transform

Specify whether you want to mark this component as permanent. If you select Yes, none of the component's data (such as files, registry entries, and shortcuts) are removed from the target system when the component's feature is uninstalled.

Validation rules require that you select Yes for any component being installed to [SystemFolder].

Note: If you are installing a font, it is recommended that you select Yes.

Uninstall

InstallScript, InstallScript Object

Specify whether the component’s files, registry entries, and other data should be uninstalled when the component’s feature is uninstalled.

This setting is useful for preventing the uninstallation of files that may be used by other products. If the component’s files are not used by other products, the Uninstall setting should typically be set to Yes.

Condition

Basic MSI, DIM, InstallScript MSI, Merge Module, MSI Database, MSM Database, Transform

This setting lets you enter a statement that the installation must evaluate before setting up your component’s data on the target system. The component is not installed if its condition evaluates to false. However, the component is installed or advertised if its condition evaluates to true, assuming that its feature is selected for installation.

To create a condition for the component, click the ellipsis button (...) in this setting. For more information, see Configuring Component Conditions.

Remote Installation

Basic MSI, DIM, InstallScript MSI, Merge Module, MSI Database, MSM Database, Transform

Indicate the default install state for the component. Valid options are:

Favor Source—The files in this component are set to be run directly from the source medium, such as a CD-ROM or a network location, by default.
Favor Local—The files in this component are set to be installed on the target system by default.
Optional—The component uses the Remote Installation setting of its feature.

For more information, see Setting a Component’s Remote Installation Setting.

Caution: If the component contains a Windows service, select the Favor Local option. Although an end user could change the feature’s installation state through the CustomSetup dialog, the Windows Installer cannot install a service remotely.

COM Extract at Build

Basic MSI, DIM, InstallScript MSI, Merge Module

Specify whether you want InstallShield to extract COM data from this component’s key file at build time. Available options are:

NoInstallShield does not extract the COM information at build time.
YesInstallShield extracts the COM information every time that you build a release. If your COM server's interfaces are subject to change, this option is preferable to maintaining statically acquired or provided data in the COM Registration area under the component’s Advanced Setting area.

Select the No option if you want InstallShield to register the file according to the information that is statically contained in the COM Registration area under the component’s Advanced Setting area. This advanced setting stores information about the file’s COM classes, ProgIDs, and so on, that were either extracted in the Component Wizard or entered manually in the Advanced Setting area.

Best Practice: If you have marked a file for this component as self-registering, you should select No for the COM Extract at Build setting. Note, however, that calling self-registration functions is a violation of setup best practices.

To learn more about COM registration, see Extracting COM Registration Data at Build Time.

Languages

Basic MSI, DIM, InstallScript, InstallScript MSI, InstallScript Object, Merge Module

The Languages setting for a component enables you to specify the languages for which the component is intended, for use in build-time filtering. By default, components are language independent, meaning that none of the component’s data (such as files and registry entries) are specific to a particular language.

Project: In InstallScript and InstallScript Object projects, if a language is not selected in the General Information view of a project, it is not listed as one of the available languages for the project’s components.

To designate that the component is intended for only certain languages, click the ellipsis button (...) in this setting. The Languages dialog box opens, enabling you to select the appropriate languages for the component.

For more information, see Marking Components as Language Dependent.

Tip: To learn how to specify which language-dependent components are installed at run time, see Installing Components Based on Language.

Reevaluate Condition

Basic MSI, DIM, InstallScript MSI, Merge Module, MSI Database, MSM Database, Transform

Specify whether you want the Windows Installer to reevaluate the component’s condition when the product is reinstalled.

This setting is useful for authoring transitive components—components that can replace each other when a product is reinstalled, for example, after an operating system upgrade. For more information, see Reevaluating Component Conditions During Reinstallation.

Never Overwrite

Basic MSI, DIM, InstallScript MSI, Merge Module, MSI Database, MSM Database, Transform

Specify whether you want your installation to avoid overwriting a file if it already exists on the target system:

If you select Yes, the file—if it exists on the target system—is never overwritten, regardless of the file version. Selecting Yes for this setting overrides file versioning rules.
If you select No and the file version on the target system is newer than the version being installed, the file on the target system is not overwritten. However, if the version being installed is newer, the file on the target system is overwritten.

Important: The Windows Installer checks for the existence of the component’s key file when determining if it should install the component. If the component’s key file does not exist on the target system, Windows Installer installs the component as if No were selected for the Never Overwrite setting. For more information on how the Windows Installer determines whether a component should be installed, see Overwriting Files and Components on the Target System.

64-Bit Component

Basic MSI, DIM, InstallScript, InstallScript MSI, InstallScript Object, Merge Module, MSI Database, MSM Database, Transform

Project: The use of this setting varies, depending on whether the project type is Windows Installer based (Basic MSI, DIM, InstallScript MSI, Merge Module, MSI Database, MSM Database, or Transform project) or InstallScript based (InstallScript or InstallScript Object project).

64-Bit Component (cont.)

 

For Windows Installer–Based Projects

Specify whether you want to mark this component as 64 bit. The component should be marked as 64 bit if any of the following are true:

The component contains files that need to be installed to a 64-bit location.
The component contains registry data that needs to be installed to a 64-bit area of the registry.
The component contains a 64-bit COM server and it needs to be self-registered.

Note the following details:

If you include a 64-bit component in your installation, the installation cannot be run on 32-bit machines, and the Template Summary property must specify a 64-bit value.
If the component is 64 bit and it is replacing a 32-bit component, be sure to specify a new GUID for the component in the Component Code setting.

For more information about 64-bit support, see Targeting 64-Bit Operating Systems with Basic MSI and InstallScript MSI Installations.

For InstallScript-Based Projects

Specify whether you want to mark this component as 64 bit.

If you want your installation to install the files and registry data in this component to 64-bit locations on 64-bit systems and 32-bit locations on 32-bit systems, you can mark the component as 64 bit.

For more information about 64-bit support, see Targeting 64-Bit Operating Systems with InstallScript Installations.

Source Location

Basic MSI, DIM, InstallScript MSI, Merge Module

Specify the name of a subfolder where the component’s files should be stored in the source disk images if the component’s files are not compressed. When you build a release, InstallShield copies the component’s files to this subfolder in your disk image.

This setting enables you to create unique folders for each component’s files, which is necessary if you have different files with the same name in more than one component. If you do not specify a value for Source Location setting, you run the risk of overwriting files with the same name when you build an uncompressed release.

This setting does not require a value, and in most cases, may be left blank. If you do enter a value, it must be a valid Windows folder name.

For more information, see Installing Files of the Same Name.

Disable Registry Reflection

Basic MSI, DIM, InstallScript MSI, Merge Module, MSI Database, MSM Database, Transform

Registry reflection keeps the 32-bit registry view and the 64-bit registry view in sync on the target machine.

To enable registry reflection for all existing and new registry keys that are affected by the selected component, select No, which is the default value.

To disable registry reflection on all existing and new registry keys that are affected by this component, select Yes. Windows Installer calls the RegDisableReflectionKey function on each key being accessed by the component. This function disables registry reflection for the specified key. Disabling reflection for a key does not affect reflection of any subkeys.

Note: Only 64-bit systems with Windows Installer 4 or later support this setting. In addition, only Windows Vista and later and Windows Server 2008 and later support it. Other systems ignore this setting.

For more information about registry reflection, see Registry Reflection in the MSDN Library.

Multiple Package Shared Component

Basic MSI, DIM, InstallScript MSI, Merge Module, MSI Database, MSM Database, Transform

To enable shared component patching for the selected component, select Yes; otherwise, select No, which is the default value. If this multiple-package sharing feature were enabled in at least one package that is installed on the target system, Windows Installer 4.5 treats the component as shared among all of those packages. If a patch that shares this component is uninstalled, Windows Installer can continue to share the highest version of the component's files on the system.

The purpose of this multiple-package component sharing is to prevent files from being downgraded during the uninstallation of a patch that contains a component that is shared with one or more other installed packages. The intent is to keep the highest version of the component's files present on the machine after uninstallation of that patch.

The following scenario helps to illustrate the behavior:

Install product A with shared file 1.0.0.0.
Install product B with shared file 1.1.0.0.
Apply an uninstallable patch for product A with shared file 1.2.0.0.
Uninstall the patch for product A.

Multiple Package Shared Component (cont.)

 

Either of the following results may occur:

If the value of the Multiple Package Shared Component setting is Yes for either product A or product B and if Windows Installer 4.5 is present, uninstalling the patch from product A could restore version 1.1.0.0 to the target system.
If the value of this setting is No for product A and product B, the file would be downgraded to version 1.0.0.0, even though product B used 1.1.0.0. As a result, if product B requires version 1.1.0.0, product B may no longer work properly.

Note: If the DisableSharedComponent policy is set to 1 on a target system, Windows Installer ignores this setting for all packages.

Windows Installer 4.0 and earlier ignore this setting.

To learn more about this setting, see Specifying Whether Shared Component Patching Should Be Enabled for a Component.

Uninstall Superseded Component

Basic MSI, DIM, InstallScript MSI, Merge Module, MSI Database, MSM Database, Transform

This setting determines how Windows Installer handles the selected component during installation of a superseding patch under certain conditions. It is designed to prevent the component’s feature from being changed to an advertised state if a patch that is installed or uninstalled changes the component count for the feature. If the feature state changes to advertised, none of the feature’s remaining components can be maintained.

To specify that this component in the current patch should be flagged for uninstallation in order to avoid leaving this component orphaned on the target system after a superseding patch is applied, select Yes. If a subsequent patch is installed and it is flagged to supersede the first patch (that is, if Yes is selected in the Supersede column for the patch's family on the Sequence tab for the patch configuration in the Patch Design view), Windows Installer can unregister and uninstall this component if appropriate. If you select No, the superseding patch can leave an orphaned component on the target system. The default value for this setting is No.

If you select No and the superseded patch installs a component for the product but the superseding patch removes that component, the component's feature state is changed to advertised, and it is not reinstalled. In addition, none of the remaining components associated with that feature can be maintained. If you select Yes, Windows Installer unregisters and uninstalls the component when the superseding patch is applied.

Note: Windows Installer 4.5 includes support for this Uninstall Superseded Component setting. Earlier versions of Windows Installer ignore it.

Tip: Setting the MSIUNINSTALLSUPERSEDEDCOMPONENTS property has the same effect as selecting Yes for the Uninstall Superseded Component setting of all components in the patch.

REG File to Merge at Build

Basic MSI, DIM, InstallScript MSI, Merge Module

If you want to merge a .reg file with the component’s registry entries at build time, enter the complete path for the .reg file. As an alternative, you can click the ellipsis button (...) in this setting to browse to the .reg file.

Self-Register

InstallScript, InstallScript Object

Specify whether the component’s files are self-registering. (A self-registering file is an OLE server that can place information about itself in the registry so that it is seen by other OLE applications. Such a file can also remove this information from the registry when it is uninstalled.)

Important: If you select Yes but one or more files in the component are not self-registering, an error occurs when the installation runs.

Project: InstallScript and InstallScript Object projects support self-registration of .dll files, .exe files, and type libraries—that is, .tlb and .olb files.

In Basic MSI and InstallScript MSI projects, self-registration is set at the file level, rather than the component level.

Potentially Locked

InstallScript, InstallScript Object

Specify whether already-installed versions of the component’s files may be locked—that is, in use by another product—during installation.

If a file is locked during installation or uninstallation, and that file is in a component whose Potentially Locked setting is set to Yes, the file operation is automatically performed after restart. If a file is locked during installation or uninstallation, and that file is in a component whose Potentially Locked setting is set to No, the OnFileLocked event handler function is called. (The default code for this function automatically performs the file operation after restart.)

Note that InstallShield always treats shared files as potentially locked files.

Compressed

InstallScript, InstallScript Object

Specify whether you want to compress the files in the component if its files are built into a .cab file at build time.

This setting has no effect if you select the check box for the component’s feature in the Custom Media Layout panel of the Release Wizard.

Overwrite

InstallScript, InstallScript Object

This setting indicates the installation’s behavior when it encounters an existing file with the same name as the one being installed; you can selectively replace each file in a component based on its version number or modification date. To change the behavior, click the ellipsis button (...) in this setting. The Overwrite dialog box opens, enabling you to specify the appropriate run-time behavior.

Tip: If the component consists of files—such as data and configuration files—that end users may have updated, consider selecting the Never Overwrite option.

Files that are associated with a component that has the Never Overwrite option selected for the Overwrite setting are logged for uninstallation; that is, even if such a file is not copied to the target system, because a file with the same name already exists there, that file is removed when the application is uninstalled. To prevent an already existing file from being uninstalled, select Yes for the Shared setting of the file’s component.

Difference

InstallScript, InstallScript Object

Specify whether you want InstallShield to include the component’s files in a release when you are building a differential release. (When you define a differential release, you specify one or more existing releases to which the current project should be compared when the new differential release is built.)

Available options are:

Include If AppropriateInstallShield excludes a file in this component from the differential release if the same file (with the same date, time, size, and attributes) exists in each of the specified comparison releases. This is the default option.
Include AlwaysInstallShield includes all of the component’s files in the differential release, even if the same file (with the same date, time, size, and attributes) exists in each of the specified comparison releases.

Link Type

InstallScript, InstallScript Object

Specify whether the component’s file links are static or dynamic and, if the latter, how the links are determined at the time of the release build.

Comments

Basic MSI, DIM, InstallScript, InstallScript MSI, InstallScript Object, Merge Module

Enter comments about this component. Your comments are saved in the project file for your reference and are not used in the installation at any time.

Target Machine

When you select a component in the Components view or the Setup Design view of an InstallScript, InstallScript MSI, or InstallScript Object project, the following settings are available in the Target Machine area:

Component Settings in the Target Machine Area

Setting

Project Type

Description

Operating Systems

InstallScript, InstallScript MSI, InstallScript Object

If a component is specific to one or more operating systems, use this setting to indicate those operating systems. If the target machine’s operating system does not match one of the operating systems that are specified for this setting, the component is not installed.

By default, components are operating system independent, meaning that none of the component’s data are specific to certain operating systems.

To change the value of this setting, click the ellipsis button (...) in this setting.

Platform Suite(s)

InstallScript, InstallScript Object

If a component is specific to one or more platform suites, use this setting to indicate the suites. If you specify more than suite, you can indicate whether all or any of the suites must be present on the target machine in order for the component to be installed.

By default, components are platform suite independent, meaning that none of the component’s data are specific to a particular platform suite.

Tip: This setting provides an additional layer of filtering beyond the Operating Systems setting. Select platform suites for the Platform Suite(s) setting only if necessary, and be sure to select only those platform suites that are required for the proper functioning of your application. For example, if a component should be installed on both the Home and Professional editions of Windows XP, you can leave Suite Independent as the value for this setting; selecting Windows XP for the Operating Systems setting encompasses both editions.

You can control the platform suites that your installation supports at run time by calling the FeatureFilterOS function. In the OnFilterComponents event handler, the framework typically calls this function with the platform suites that match the target system so that only the appropriate components are installed. By calling FeatureFilterOS, you can override this default behavior to install or prevent the installation of components based on any platform suite criteria that you specify.

.NET Settings

When you select a component in the Components view or the Setup Design view, the following settings are available in the .NET Settings area:

Component Settings in the .NET Settings Area

Setting

Project Type

Description

.NET COM Interop

Basic MSI, DIM, InstallScript MSI, Merge Module

Specify whether you want to use COM interoperation (the ability to call .NET objects from COM) for the component.

For example, if you have a Visual Basic .NET class library that defines the ComClass attribute and contains at least one public (COM-callable) function, you can select Yes for this setting; InstallShield extracts the COM Interop information at build time and adds it to the Registry table of your .msi database. At run time, registry entries that allow COM objects to call your .NET assembly are created on the target system.

Note: This setting is applicable only if the component’s key file is a .NET assembly.

.NET Precompile Assembly

Basic MSI, DIM, InstallScript MSI, Merge Module

Specify whether you want the installation to create a native image from the .NET assembly at run time and install it to the native image cache on the target system. This allows the assembly to load and execute faster, because it restores code and data structures from the native image cache rather than from just-in-time (JIT) compilation.

.NET Assembly

InstallScript, InstallScript Object

Specify whether the component’s files should be installed as local .NET assemblies. Available options are:

Local Assembly—The component contains a .NET assembly. In addition, the installation performs COM interop registration and configures .NET installer class information for the component at run time.
Not a .NET Assembly—The component does not contain a .NET assembly. This is the default option.

If you want InstallShield to scan the assembly in this component for .NET dependencies at run time, Local Assembly must be selected for this setting. To learn more, see Identifying Properties and Dependencies of .NET Assemblies.

.NET Scan at Build

Basic MSI, DIM, InstallScript, InstallScript MSI, InstallScript Object, Merge Module

Project: The functionality for this setting depends on whether the project type is Windows Installer based (Basic MSI, DIM, InstallScript MSI, Merge Module, MSI Database, MSM Database, or Transform project) or InstallScript based (InstallScript or InstallScript Object project).

For a Windows Installer–based project—Indicate whether you want the key file of this component to be scanned for .NET dependencies, properties, or both at build time.
For an InstallScript-based project—Indicate whether you want the files of this component to be scanned for .NET dependencies at build time.

For more information, see Identifying Properties and Dependencies of .NET Assemblies.

.NET Application File

Basic MSI, DIM, InstallScript MSI, Merge Module

This setting is used when this component is scanned at build time (based on the .NET Scan at Build setting) or by the Static Scanning Wizard. The scanner uses this setting—along with the component destination—to determine the value of the File Application setting for the assembly.

For optimal advertising and repair, select the .NET executable file that uses the assembly in this component.

The key file of the component is displayed in this setting if the .NET Scan at Build setting is set to Dependencies and Properties or Properties. You can select any other key or portable executable file in the project.

Note: This setting is applicable only if the component’s key file is a .NET assembly.

The value for this setting is ignored if the file that is selected is not a .NET assembly file.

.NET Installer Class

Basic MSI, DIM, InstallScript MSI, Merge Module

Note: This setting is applicable only if the component’s key file is a .NET assembly that contains a class that is derived from System.Configuration.Install.Installer.

If the assembly’s Install, Commit, Rollback, and Uninstall methods should be called at the appropriate times at run time, select Yes.

.NET Installer Class Arguments

Basic MSI, DIM, InstallScript MSI, Merge Module

To specify arguments that should be passed to the .NET installer class, click the ellipsis button (...) in this setting. The .NET Installer Class Arguments dialog box opens, enabling you to specify arguments for the Install, Commit, Rollback, and Uninstall methods.

For sample code, see Reading Properties Passed to the .NET Installer Class.

Note: This setting is applicable only if the component’s key file is a .NET assembly.

Run-Time Settings

When you select a component in the Components view or the Setup Design view of an InstallScript or InstallScript Object project, the following settings are available in the Run-Time Settings area:

Component Settings in the Run-Time Settings Area

Setting

Project Type

Description

FTP Location

InstallScript, InstallScript Object

If you want to associate an FTP location with the component, enter the FTP address.

The location that you enter cannot be accessed from within a script. Note that this same setting is also available for features; however, the location that you specify for the feature setting can be accessed from within a script.

HTTP Location

InstallScript, InstallScript Object

If you want to associate an HTTP address with the component, enter the HTTP address.

The location that you enter cannot be accessed from within a script. Note that this same setting is also available for features; however, the location that you specify for the feature setting can be accessed from within a script.

Miscellaneous

InstallScript, InstallScript Object

If you want to associate a text string with the component, enter the text string.

The location that you enter cannot be accessed from within a script. Note that this same setting is also available for features; however, the location that you specify for the feature setting can be accessed from within a script.

See Also