Hello AskPerf – my name is Digvijay Nath, and I’m a Support Engineer on the Performance team in our Bangalore office. Today, I’m going to quickly cover the .MSP file used by the Windows Installer. The installer uses different file types to glean data about software installs, uninstalls and upgrades. So, let’s get started. There are a number of different files that are used:
- .MSI (registered extension for Windows Installer packages): .MSI files contain the binaries to be installed as well as the information on actions for the installer
- .MST (Windows Installer Transform file): the Transform file is a list of changes that should be applied to the installation. When you apply the transform to an install package, the installer can modify the data in the installation database.
- .MSP (Windows Installer patch): the Windows Installer patch is a self-contained package that contains information regarding the specific versions of the application to which the patch is applicable, as well as information on the differences between the versions
- .IPI (In Progress Database): the .IPI contains information about the operations that need to be performed after a system restart during an application install
As I mentioned above, the .MSP files contain information about updates to installed applications, as well as the versions of the applications to which the updates are applicable. The patch carries the metadata needed for applying the update and the updates files. These updated files are stored within embedded cabinet (.CAB) files. The files may be in whole, or in binary form. To explain, a patch in binary form is the byte-level difference between two files – .MST format). A patch package may only contain summary information and transform information and the cabinet files may be downloaded separately. In this fashion, only the necessary components needed for the upgrade are downloaded.
One of the advantages of patching an application that is already installed as opposed to doing a full install of the new version is that the patch only contains the bits required to update the application. This reduces the size of the file that needs to be downloaded or deployed. In addition, patching as opposed to reinstalling helps to preserve user settings and customizations. When installing a patch, the .MSP file is cached in %windir%\installer in the GUID folder that matches the registry entry in HKCR\Installer\Products. With Windows Installer 3.0 and later, any patches that contain the MsiPatchSequence table cause the installer to cache the original files being replaced into a baseline cache. This cache is used for patch uninstall operations since it stores the original files that were replaced. The original files can be copied back to their application folder locations as part of the patch uninstall process. The baseline caches are created separately for per machine and per user managed / per user unmanaged installs.
We have seen scenarios where the Installer folder is consuming large amounts of disk space. Although you may read advice on the internet that it is safe to delete files from this folder to recover disk space, we strongly advise against this course of action. These files are required for application repair, uninstall and reinstallation of patches – if the files are not there, then attempted actions against the applications will fail.
With that, we’ve reached the end of this post. Thanks for stopping by!
– Digvijay Nath