Assembly

An Assembly is a component that defines a .Net or Windows side-by-side assembly. An assembly differs from a standard component by defining additional options that only apply to assemblies. Assemblies are installed just as components, but in addition have the ability to register their files for .Net or Windows side-by-side usage. For more information, see:

Note: Assembly components do not have the GUID that regular components have. Assemblies have their own registration mechanism, which is separate and distinct from the normal component registration.

Attributes

The following attributes and options are available.

Attribute Description
Name

Enter the name of the assembly. This name is used to refer to the assembly in conditional expressions and symbolic expressions elsewhere in the project, but is not visible to the user. Each assembly must have a name that is unique within the project.

By default, the name of the assembly item in your project is the same as the "strong" name of the assembly that it represents. The format of this strong name depends on the type of assembly and the Windows version; InstallMate Builder generates a name that is representative of the most common implementations. This name contains the following elements (the order may vary):

  • The processor architecture: amd64, ia64, msil, x86, or any
  • The assembly's base name, usually in the format Company.Product.Application
  • The public key token, if any
  • The assembly's version number as major.minor.build.revision
  • The assembly's language or culture code, or neutral or none if language/culture-neutral
Manifest file Displays the name of the installation file that contains the assembly's manifest. To select a different manifest file, click on the ... (browse) button to open the Select Installation File or Folder dialog box that allows you to select a different file.
Assembly type

Select the type of assembly from the drop-down box. The following choices are available:

Assembly type Description
Side-by-side, Private Private Windows side-by-side assembly. This type of assembly is intended for private use by the application and should be installed in a application-specific folder. The assembly will not be registered on the target system.
Side-by-side, Shared Public Windows side-by-side assembly. This type of assembly is intended to be shared among applications and should be installed in a subfolder of the WinSxS folder. The assembly will be registered on the target system.
.Net, Private Private .Net assembly. This type of assembly is intended for private use by the application and should be installed in a application-specific folder. The assembly will not be registered on the target system.
.Net, Global Public .Net assembly. This type of assembly is intended to be shared among applications and should be installed in a subfolder of the global assembly cache folder, typically C:\Windows\assembly. The assembly will be registered on the target system.

Each global assembly must fulfill the following requirements:

  1. Its manifest file must be signed and contain a public key or public key token.
  2. [Side-by-side] The assembly must be accompanied by a security catalog with the digital signature of the assembly;
  3. [.Net] The assembly must be digitally signed.

InstallMate Builder will produce a number of diagnostic warnings if you build a project that does not conform to these requirements. Do not ignore these warnings; they indicate issues that will cause your installer to fail.

Base name [Read-only] Base name of the assembly as obtained from the assembly manifest, usually in the format Company.Product.Application.
Version [Read-only] The assembly version as obtained from the assembly manifest, usually in the format major.minor.build.revision.
Processor [Read-only] Targeted processor architecture, or * if the assembly is intended for any type of processor.
Language [Read-only] The assembly's language or culture as obtained from the assembly manifest, or empty if the assembly is language or culture-independent.
Public key [Read-only] The public key token that corresponds to the public key of the public/provate key pair that was used to sign the assembly, or all zeroes if the assembly does not have a public key token.
Type [Read-only] The assembly type as obtained from the assembly manifest. This must be win32 for all currently supported assemblies.
Initial state

Select the initial assembly state from the drop-down list. The available states are shown in the section Component states.

In conjunction with the Condition field, this field determines the assembly's initial selection state during installation, as shown in Component states.

If condition true

Select the conditional assembly state from the drop-down list. The available states are shown in the section Component states.

In conjunction with the Condition field, this field determines the assembly's conditional selection state during installation, as shown in Component states.

Condition Enter a conditional expression that determines if the assembly will be installed according to Initial state or If condition true, or leave empty if the assembly must be installed according to Initial state.
Platforms...

Click this button to open the Select Installation Platforms dialog box that allows you to select the Windows versions on which the assembly must be installed. This platform selection acts as a prerequisite for the assembly. See the section Component states for details.

Note: Platform selection can occur during build time or installation time. When a Package is being built InstallMate will include or exclude assemblies depending on the overlap between the assembly's Platforms selection and the package's build platforms. A BLD:Q0062 diagnostic message will be issued if an assembly is excluded based on the build platforms. Further platform selection may occur at installation time.

Languages...

Click this button to open the Select Installation Languages dialog box that allows you to select the languages for which the assembly must be installed. This language selection acts as an additional condition for the assembly. See the section Component states for details.

Note: Language selection can occur during build time or installation time. When a Package is being built InstallMate will include or exclude assemblies depending on the overlap between the assembly's Languages selection and the package's build language. A BLD:Q0063 diagnostic message will be issued if an assembly is excluded based on the build languages. Further language selection may occur at installation time (for multilingual installers).

Build condition

Enter a conditional expression that determines if the component will be included in the build, or leave empty if the component must be included in all builds. The build condition is evaluated during the preflight test for each Package; you can use the Build variables attribute in the Package pane to control if the component will be included for a particular configuration.

If the condition evaluates to false, the component and all the installation objects that are controlled by it are excluded from the build process for the configuration.

Packaging

Select the desired packaging option for the files that belong to the component. The packaging option that you select here overrides the packaging option from the package. The following choices are available:

Packaging Description
Default Package the component's files as per the package's Packaging option.
Local Always keep the component's files local, i.e., in the main installation package or on one of the distribution disks.
Download Always create a download package for the component's files. This option is most useful for large components that are only needed in special circumstances (as dictated by the component's Condition or Platforms settings, or because the component belongs to a feature that is optional).
For a detailed overview of the interaction between the component's packaging options and the package, see the Installer packaging topic.
Comment Free-form text field in which you can enter annotations for the assembly. This field is not used by the installer; it is only intended for your own documentation.

Related topics

Components, Working with attribute panes