Assembly attributes

Reference information
Project page Components and Features
Related topics Working with attribute panes

Introduction

An Assembly is a component that defines a .Net or Win32 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 register their files for .Net or Win32 side-by-side usage.

N/A Support for Win32 side-by-side assemblies is not implemented yet.

Attributes

This pane contains the following attributes and options.

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.
Global assembly

Check this box to mark the assembly as a global assembly; clear it for a private assembly. Global assemblies are installed in the global assembly cache (GAC) and are available to all processes on the system. A global assembly must fulfill the following requirements:

  1. Its manifest file must be signed and contain a public key or public key token.
  2. All assembly files must be installed into the global assembly cache folder; this folder appears as Target System\Windows Volume\Windows\assembly on the Files and Folders project page.
  3. The assembly's Folder alias field (see below) must be set to GlobalAssemblyCache.

Tarma ExpertInstall will produce a number of diagnostic warnings if you build a project that does not conform to these requirements. DO NOT IGNORE these warnings.

GUID

Enter the GUID (Globally Unique IDentifier) for the assembly. When you create a new assembly, Tarma ExpertInstall automatically generates a new GUID for the assembly. Unless you have a good reason to change this GUID and are aware of the implications, we recommend that you keep the GUID that was generated for you.

The assembly GUID must be unique across all Windows software; it is used, among other things, to uniquely identify your assemblies on Windows systems. If the GUID accidentally or intentionally matches the GUID of a different assembly or component (whether yours or someone else's), the information for the two components will get mixed up.

The assembly GUID must have the following format:

{aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee}

Each group of characters must consist of uppercase hexadecimal digits, i.e., the characters 0-9 and A-F.

Lock GUID Check this box to protect the GUID field against accidental changes (the field will be made read-only); clear it to allow editing of the GUID field. Because it is very important that the GUID of your assemblies remain unchanged throughout their lifetime, we recommend that you keep this box checked.
Generate

Click this button to generate a new GUID and copy it to the GUID field. The GUID is generated by the Windows UuidCreate function and is guaranteed to be globally unique if your computer contains a functioning network card.

Note: No network access takes place when the GUID is generated, but the network card's unique identifier is used as part of the new GUID. This is combined with time and date information and a counter, and the result is then securely hashed to make it impossible to reconstruct any of the original information.

Folder alias

Enter the folder alias of the installation folder that is associated with the assembly, or click ... (browse) to open the Select Installation Folder dialog box that allows you to select one. The path to this folder acts as the component's path if you use the <$component_name> symbolic expression.

MSI note Windows Installer installs all files of an assembly in the assembly's folder, regardless of where you put them on the Files and Folders project page.

Key path

Displays the name of the installation object that acts as the assembly's key object. Windows Installer uses the key object to determine if the assembly is installed on the target system. To set the key path, right-click on the desired installation object on the Components and Features project page and select Set As Key Path from the context menu.

Tarma note Tarma Installer does not currently use this field.

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.
Condition

Enter a conditional expression that determines if the assembly will be installed, or leave empty if the assembly must be installed unconditionally. Unless you check the Dynamic option (below), the condition is only evaluated once, to ensure that the assembly will not be accidentally installed or removed during a subsequent run of the same installation package because of changes to the condition.

MSI note Windows Installer evaluates assembly conditions during its CostFinalize standard action.

Tarma note Tarma Installer evaluates assembly conditions during its UpdateComponents standard action.

Dynamic Check this box to re-evaluate the condition during each installer run; clear it to evaluate the condition only once. If this option is checked, the installer re-evaluates the conditon during each CostFinalize (Windows Installer) or UpdateComponents (Tarma Installer) action; with the option cleared, only the first such action evaluates the condition.
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 an additional condition for the assembly.

MSI note Windows Installer does not support platform selection for assemblies. However, when an MSI Configuration is being built, Tarma ExpertInstall will include or exclude assemblies depending on the overlap between the assembly's Platforms selection and the build configuration's build platforms. A BLD:Q0062 diagnostic message will be issued if an assembly is excluded based on the build platforms. Beyond the build-time selection, this option option has no effect in Windows Installer.

Tarma note Tarma Installer fully supports platform selection at installation time. In addition, when a TSU Configuration is being built Tarma ExpertInstall will include or exclude assemblies depending on the overlap between the assembly's Platforms selection and the build configuration's build platforms. A BLD:Q0062 diagnostic message will be issued if an assembly is excluded based on the build platforms.

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.

MSI note Windows Installer does not support language selection for assemblies. However, when an MSI Configuration is being built, Tarma ExpertInstall will include or exclude assemblies depending on the overlap between the assembly's Languages selection and the build configuration's build languages. A BLD:Q0063 diagnostic message will be issued if an assembly is excluded based on the build language. Beyond the build-time selection, this option has no effect in Windows Installer.

Tarma note Tarma Installer fully supports language selection at installation time. In addition, when a TSU Configuration is being built Tarma ExpertInstall will include or exclude assemblies depending on the overlap between the assembly's Platforms selection and the build configuration's build platforms. A BLD:Q0063 diagnostic message will be issued if an assembly is excluded based on the build languages.