WiX 与注册表中的 GUID 半字节顺序

GUID nibble order in WiX versus Registry

这可能有点傻,但我还没有找出原因...

我在我的 WiX 安装源中指定了几个 GUID。例如:

<Product Id="...-57725972C7B2" ...

安装后,我无法在注册表中找到它们,直到我意识到它们都交换了半字节。因此,GUID 在注册表中的显示方式是:

...752795277C2B

我没能找到任何地方描述这个,所以我想知道为什么会这样?

在注册表中保存space。 (MSI 是在 90 年代后期开发的,支持 Windows 9x,其中注册表 space 受到严格限制。)它称为打包 GUID,有时称为压缩 GUID。 MSI SDK中没有记录,但有半官方帖子,例如https://blogs.technet.microsoft.com/odsupport/2009/12/17/how-to-convert-an-office-guid-or-office-patch-guid-to-a-compressed-guid/.