Where is the Windows Installer GUID stored in the machine?


The Installer uses GUIDs to uniquely identify applications, packages, components, etc. The ProductID is the GUID used by the Installer to distinguish one application from another. It doesn’t matter if the package or application names for two different applications are different, if the IDs are the same, the Installer is likely to become confused and you will encounter problems with installation, repair and uninstall.

How should an Installer GUID be represented?

The GUID data type is a text string representing a Class identifier (ID). COM must be able to convert the string to a valid Class ID. All GUIDs must be authored in uppercases. The valid format for a GUID is {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} where X is a hex digit (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F).

You can use the same ProductID when a package is a newer build of an existing one, but you need to then have different PackageIDs to distinguish the application versions. If you want the packages to be upgrades of each other, then you need them to have the same UpgradeID.

How does GUID get stored?

Windows Installer GUIDS are not written in the registry as they appear in the development tools. The first 8 digits are reversed, the hyphen is dropped, the next 4 digits are reversed, the hyphen is dropped, the next 4 digits are reversed, the hyphen is dropped, the next two digits are reversed, the next two digits are reversed, the hyphen is dropped, then the next two digits are reversed, six times.

So a code such as {D0F23C3F-CA74-460F-9ADB-49CBD57F9688} becomes: F3C32F0D47ACF064A9BD94BC5DF76988

Refer below figure for example.

guid_Strut