2011-04-05 81 views
1

我正在创建一个MSI文件,该文件通过其HKLM\Software\...密钥使用RegLocator表找到了现有应用程序中的附加组件;这在32位Windows上运行得非常好。在32位和64位计算机上查找第三方32位产品

但是,在64位Windows上,密钥可以在HKLM\Software\WOW6432Node\...下找到;这显然是正确的,因为其他应用程序是一个32位应用程序,但它使RegLocator绊倒。

有没有办法检查原来的和重写的键路径,并使用第一个存在的(如果两个键都不存在,该组件不应该被安装)?

回答

2

嗯,根据RegLocator table的文件,如果不设置类型列的msidbLocatorType64bit,它会在注册表中的32位部分搜索。否则,它会搜索64位部分。所以,如果你的第三方总是32位的(至少这是我从你的问题中了解到的),你可以不留下那个位,它会一直关注32位配置单元。

+0

最优秀的,这工作正常。 – 2011-04-06 10:12:47