Did you know these Windows Installer File Types?

This post defines the several files type which can be created for the Windows Installer technology like .msi, .msm, .cub, .mst, .idt and .pcp files.

.MSI -> .MSI file is Windows Installer installation package. It is a database file which is used to manage the various states of the application like adding, changing, or removing it from a computer.

.MSM -> .MSM is a Windows Installer Merge modules, which are pre-compiled libraries of components like files, registry, and other system changes that installs a discrete portion of the application.

Read this article to understand, how an Merge Module (.msm) works!

.MSP -> .MSP is a Windows Installer Patch file used to distribute small updates of .MSIs.To know more on Patches refer this article

.MST -> .MST is a Windows Installer transform file that makes changes to a pre-existing .MSI.  A transform encapsulates all the changes which can be made to a base msi and hence it enables to maintain a SINGLE installation FILE and changes separately in the TRANSFORM file. An Example, having a single MSi for Office product, Creating two different Transform files for different licenses. Thereby ensuring that, the same package can be used in 2 different divisions. This will also ensure that, the base msi package is never changed.

.IDT -> .IDT is an Exported Windows Installer database table which can be removed from one database and imported to another database. Using this, you can copy a table alone into a new MSI package.

.CUB -> .CUB is a Validation Module that contains Internal Consistency Evaluators in a database which in turn evaluates databases.

For more information on Package Validation .Cub files, check here

.PCP -> .PCP file is a Windows Installer patch creation file that contains the configuration information that patchwiz.dll requires to create a patch.

For Using Patch Creation Tool in Wise Package Studio, Read this!!


  1. Interesting. Have you tried Nullsoft Installer (the one that comes with WinAmp). It used to be a great one, once upon a time.

  2. Hi All

    Can any one help me with some of my doubts which i was not able to answer in an interview.
    1.) You are installing an msi which is having a public property defined inside the property table and during installation the same property has been given a different value in commandline, as a result the installed application will be having the property value set to the one in commandline. Once the installation is over we are repairing the msi alone(no commanline property value is used here), how can we get the value which was mentioned in the commandline property on repair?

  3. By default, property values are not persisted (except directories for instance). To preserve the value, save it somewhere (e.g. in registry) and use AppSearch to read the value.

Leave a comment

Your email address will not be published.