Directory Table

The Directory Table links all directories that are referenced with the MSI.  Every entry has three references within the MSI directory table.  “Directory_” is a unique reference within the MSI for referring to a particular directory.  That directory will be listed with a “Directory_Parent” that has it's own unique identifier. The actual name that is assigned to the directory is normally contained in the “DefaultDir” table entry.

Directory_Parent Notes

A number of entries within the Directory_Parent column will be the TARGETDIR entry.  Targetdir  is used to indicate that the directory will be on the machine being installed to as a Target Directory.  The actual physical location of these directories is determined at install time,   In these situations, the directory name that is a standard directory with a name that the Windows Installer service can resolve when installed on a target machine. 

Eg.

DIRECTORY                           DIRECTORY_PARENT           DEFAULTDIR

ProgramFilesFolder     TARGETDIR             .:ProgramF|Program Files

The preceding entry from the Directory Table will reference an internal directory name of ProgramFilesFolder when referring a directory called ProgramFilesFolder. 

A list of predefined folders used by Windows Installer is available with the Windows Installer SDK.

DefaultDir Notes

Default directory names are displayed in both 8x3 notation and Long Filename notation.  Both names are displayed separated by a vertical bar character.

Actual directory locations are resolved at install time where the internal directory reference will be resolved to a physical location on the Target machine.  A point to be conscious of is that directory references are actually properties.  Custom Actions (type 51 in the CustomAction Table) can actually be used to specify a physical directory path for an internal directory reference.