【发布时间】:2015-01-21 12:54:03
【问题描述】:
为什么在 Wix RegistrySearch 中可以读取 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\test 键,
但无法从
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\test 键读取?
【问题讨论】:
标签: wix registry windows-installer
为什么在 Wix RegistrySearch 中可以读取 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\test 键,
但无法从
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\test 键读取?
【问题讨论】:
标签: wix registry windows-installer
RegistrySearch 元素在 MSI 数据库的 AppSearch Table 和 RegLocator Table 中创建行。这些行由AppSearch Action 处理。本质上,AppSearch 操作使用此信息来执行注册表获取值操作并将结果分配给属性。
这里有几件事情需要考虑:
1) 记录安装程序并读取日志文件。如果 AppSearch 失败,您将在日志中看到错误代码。这将告诉您要寻找什么。可能性是:
2) 64 位 Windows 有一个 64 位和一个 32 位注册表配置单元。确保您了解这其中的含义。读取 HKLM\SOFTWARE... 的 32 位 MSI 将真正从 HKLM\SOFTWARE\Wow6432Node... 读取...
3) 注册表项可以应用 ACL。如果运行安装的用户没有权限,MSI 将无法读取它。能够绕过这将是一个安全漏洞。
【讨论】: