Blog
MSI Program Information Tables:
- April 11, 2022
- Posted by: Laraonline2020
- Category: End User Computing

The Program Information tables group contains tables with information that’s used for the Installer’s internal operations. This group includes these tables:
Property Table: (MSI Program Information Tables)
What is a Property table?
The Property table contains all of the properties and corresponding values that are present in an installation. This table has following columns:

Property:
This is the name of the property. Public properties are identified by being in entirely uppercase letters. And private properties are present in lower case.
Value:
This is the value of the property. And the value of the property can never be NULL or an empty string.
Example for application of property table:
I) let us consider an application ABC.msi in which during the process of normal installation it needs the manual entry of a License code, so during the silent installation of the ABC.msi it prompts an error. So we will now see how property table plays an important role in such cases.
A)

Suppose during the process of installation of an application there is a situation as shown above to select one check box ,during normal installation we can check the particular check according to our requirement. But during the silent installation it will be a problem to check a particular check box automatically, so in such cases we have to go to a particular dialog box by opening the msi file and check the check box of our requirement by setting the corresponding value of that property as shown below:

So go to ‘Setup Editor’ option by opening the MSI file and click the dialogs option, and then navigate through the particular dialog of requirement. And then double click the option to be selected during the silent installation and set the value of that property in this case “OPCHECk” as one in property table.
The Binary Table:
What is a Binary Table? The Binary table holds binary data (such as images, animations, bitmaps and icons) used by other parts of the Installer, chiefly on the user interface. The binary table is also used to store data for custom actions. This table has following two columns:

Name:
This column uniquely identifies this row of the table.
Data:
This is unformatted binary data.
The Error Table:
What is an Error table? The Error table is used by the Installer to convert error numbers and associated data into meaningful messages. This table has the following columns:

Error:
This is the error number.
Message:
This is the template used to display this message. Error numbers from 25000 to 30000 are reserved for custom actions.
The Shortcut Table: (MSI Program Information Tables)
What is a Shortcut table? The Shortcut table contains information used to create shortcuts on the user’s computer. This table contains the following columns:

Shortcut:
This is the name of the shortcut which is a key value for this table.
Directory_:
This is an external key into the Directory table, which specifies the directory where this shortcut will be created.
Name:
The name of the shortcut to be created.
Component_:
This column is a foreign key to the Component table; it specifies the component that owns this shortcut.
Target:
If the shortcut is advertised, the column is a foreign key to the Feature table. If the shortcut is non-advertised, this is a property whose value supplies the target for the shortcut.
Arguments:
This column shows any command-line arguments to be used with this shortcut.
Description:
The localizable description of the shortcut
Hotkey:
This is the hotkey for this shortcut, if there are any. Normally this column is null.
Icon_:
This is a foreign key to the Icon table.
IconIndex:
This is the index of the icon to use from the icon file.
ShowCmd:
This is the style that the shortcut should use to launch the application. Valid values are given in the following table.
Value | Meaning |
0 | Normal |
3 | Maximized |
7 | Minimized and inactive. |
WkDir:
The name of the property that has the path of the working directory for the shortcut. Advertising a feature will only create an advertised shortcut on Windows 2000 and Windows 98, or older systems running Internet Explorer 4.01 or higher. This table is used by the CreateShortcuts and RemoveShortcuts actions.
The ReserveCost Table (MSI Program Information Tables)
What is a ReserveCost table?
The ReserveCost table is used to set aside free space on the user’s hard drive as part of the minimum requirements for an installation. This table includes following columns:

ReserveKey:
This is an arbitrary primary key for the table that uniquely identifies a ReserveCost table entry.
Component_:
This column is a foreign key into the Component table. It identifies the component that needs to reserve the space.
ReserveFolder:
This is a property that evaluates to the name of a directory where the space should be reserved.
ReserveLocal:
The number of bytes of disk space to reserve if the linked component is installed to run locally.
ReserveSource:
This is the number of bytes to reserve if the indicated component is installed to run from source.