我正在创作一个MSI文件,该文件使用 RegLocator 表通过其HKLM\Software\...
键找到现有应用程序的附加组件;这在32位Windows上运行得很好。
在64位Windows上,密钥可以在HKLM\Software\WOW6432Node\...
下找到;这显然是正确的,因为其他应用程序是一个32位应用程序,但它使RegLocator绊倒。
有没有办法检查原始和重写的密钥路径,并使用第一个存在的密钥路径(如果两个密钥都不存在,则根本不应安装该组件)?
答案 0 :(得分:2)
嗯,根据RegLocator table的文档,如果你没有设置Type列的msidbLocatorType64bit,它将搜索注册表的32位部分。否则它将搜索64位部分。所以,如果你的第三方总是32位(至少这是我从你的问题中理解的那样),你可以不设置该位,它总是会看到32位的配置单元。