Win注册表HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Installer \ {CODE}中使用的{CODE}是什么?

问题描述

安装msi后,Windows注册表将在 HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Installer 中添加键 {CODE} 。我希望 {CODE} 是正在安装的应用程序的产品代码,但它们不匹配。

例如,如果我安装产品代码为{E4703DAD-63CA-4A57-B9E3-D7887318B036}的msi软件包,则会看到添加的密钥为 HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Installer \ FAD3074EAC3675A49B3E7D4837810B63

我确实看到了这样的 {CODE} 是恒定的,而不管我的应用程序的版本或软件包代码为何(这就是为什么我期望它与产品代码-或与产品代码有某种关系)

解决方法

我终于弄清楚了 {CODE} 的构造方式。我看到一些有关它的引用,称为压缩GUID,它的确基于产品代码。 {CODE} 是产品代码“反转”。

您可以轻松查看是否同时将 {CODE} 和产品代码与破折号对齐

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

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

前3组基本上是直接反转(63CA-> AC36),而后2组在2个字符的基础上反转(B9E3-> 9B3E)。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...