rsc
rsc

Reputation: 10679

What is that {CODE} used in Win registry HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\{CODE}?

After a msi is installed, the Windows Registry will add a key {CODE} inside HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer. I would expect that {CODE} to be the Product Code of the application being installed, but they don't match.

For example, if I install a msi package whose Product Code is {E4703DAD-63CA-4A57-B9E3-D7887318B036} I see that the key added is HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\FAD3074EAC3675A49B3E7D4837810B63

I did see that such {CODE} is constant regardless different version or package code of my application (which is why I was expecting it to be - or have some relation - to the product code).

Upvotes: 2

Views: 865

Answers (1)

rsc
rsc

Reputation: 10679

I finally figured how that {CODE} is constructed. I see some references of it being called as a compressed GUID and it is indeed based on Product Code. That {CODE} is the Product Code "reversed".

You can easily see if you align both {CODE} and product code with the dashes

Product Code:    {E4703DAF-63CA-4A57-B9E3-D7887318B036}

{CODE} with dash: FAD3074E-AC36-75A4-9B3E-7D4837810B63

The first 3 groups are basically a direct reverse (63CA -> AC36), while the last 2 groups are reversed inside a set of 2 chars basis (B9E3 -> 9B3E).

Upvotes: 2

Related Questions