The Components page defines the physical (development) and logical (user-visible) organization of your product's contents in the installer.
- Components are pieces of functionality that the customer can select or not select for installation. A component can contain subcomponents in a hierarchical fashion. Components also contain installation items such as files, shortcuts, registry settings, etc., that must be installed and removed together.
- Assemblies are specialized components that define .Net or Win32 assemblies.
The Components page has a tree view on the left and a list view on the right. The tree view contains the components tree; the list view displays the contents of the currently selected tree view item.
Tip: You can use drag & drop to move components about in the tree. You can also drag & drop installation items from the list view of one component to another component in the tree view.
|Assembly that is Hidden or Disabled initially|
|Assembly that is Not selected or Selected initially|
|Assembly that is Always selected initially|
|Internal component that is Hidden or Disabled initially|
|Internal component that is Not selected or Selected initially|
|Internal component that is Always selected initially|
|User-visible component that is Hidden or Disabled initially|
|User-visible component that is Not selected initially|
|User-visible component that is Selected initially|
|User-visible component that is Always selected initially|
Visible versus internal components
Components may be visible to the user, or they may be for internal use only.
- If a component has its Component is visible in UI option checked (see Component attributes), then it will be shown in any OptionTree control that is used in the installer's dialog pages; typically this will be the predefined OptionsDlg dialog box. The user can then select or unselect the component for installation.
- If a component does not have its Component is visible in UI option checked, then the component is not presented to the user. In that case the component's installation state is typically set through its Platforms, Languages, or Condition options, or through an explicit Set Component State action.
Note that assembly-type components are never visible in the installer's user interface.
InstallMate has very relaxed rules for components. You can build an InstallMate installer without using any components at all; in that case, there are no product options available (although the installation folder can still be selected by the customer) and all product contents are always installed. Most of the time, however, your installer will use some components, but InstallMate imposes very few restrictions on the composition of your components.
However, you must use components in the following situations:
- Platform-dependent files and items. If you have any files or other installation items that must be installed on some platforms (i.e., Windows versions) but not on others, then you must create a component for the items that are platform-dependent, set the component's Platforms option as required, and assign the files and other items to that component. See Component attributes for details.
- Language-dependent files and items. If you have any files or other installation items that must be installed for some languages but not others, for example separate English, French and German versions of your software, then you must also create a separate component for each language or group of languages and use the component's Languages option as required. Again, see Component attributes for details.
- Other conditional files and items. If there are other conditions that are not covered by the standard platform and language options, then you can use the component's Condition field to create a component that is subject to yet more checks at installation time, for example the presence of a special registry entry. You can use any conditional expression in the component's Condition field.
These options may be combined to create, for example, a component that is only installed during a French installation on a 64-bit Windows XP target system where a specific registry value is also present.
If you use components for any of these situations, then the component (and the installation items it controls) is installed if, and only if, all its platform, language, and free-form conditions are fulfilled, and its parent feature is selected for installation.
An Assembly represents either a .Net assembly or a Windows side-by-side assembly. Assemblies are specialized components, which means that they control the installation of the items that you put into them and are themselves subject to control by their parent feature. Assemblies differ from plain components in that an assembly can register itself on the target system as either a .Net assembly or a Windows side-by-side assembly.
See the following topics for information about assembly usage:
InstallMate's implementation of .Net and Windows side-by-side assemblies has one special feature: on Windows versions that do not support these assemblies, the files that make up the assembly are automatically redirected to the appropriate Windows System folder (32-bit or 64-bit). This allows some degree of backward compatibility and will allow most applications to operate correctly on older systems.