About ICE43, ICE50, and ICE57 Tests for Shortcuts

AdminStudio 2022 | 23.0 | Application Manager

Edition:These tests are included in AdminStudio Professional and Enterprise Editions.

Each entry in the CreateLink section of the .inc file is converted into an entry in the Shortcut table. The exact properties of the shortcut depends on the information in the CreateLink line as well as the nature of the target file itself.

ICE43, ICE50, and ICE57 are the most common validation tests for shortcuts.

Shortcut Types

The primary distinction between shortcuts is advertised vs. non-advertised. Here are two reasons why it is preferable to create advertised shortcuts:

Advertised shortcuts are triggers for MSI’s self-repair mechanism.
Non-advertised shortcuts are intended for a per-user context only:
The target file must be a file installed in a user-specific directory.
The key path of the component that contains the target file must be a user-specific registry value.

Conversion from CreateLink Entries to Shortcut Table Entries

The .inc converter always tries to create advertised shortcuts for every CreateLink line that is found in the .inc file. However, not every CreateLink line can be converted into an advertised shortcut.

To create an advertised shortcut, the information in the CreateLink line must meet all of the following requirements:

The target file must be the key path of its component. This means that the target file must be listed in the .inc file list. The converter will create a new component for a non-PE (portable executable) target files, so that it is guaranteed to become the key path of the component. (Normally, for each target directory, non-PE files are grouped together into one component).
The target file must contain an icon.

In general, this means that as long as the target file contains an icon, the converter is able to create an advertised shortcut for it. However, whenever a shortcut cannot be advertised, the converter does the following:

It creates a “catch all” component (if not yet created) named ShortcutsComponent. It also creates an HKCU registry entry in the Registry table, and that entry is used as the key path for ShortcutsComponent. This is done to avoid ICE43.
A new shortcut entry is created in the Shortcut table, and it is associated with ShortcutsComponent.

See Also