You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WiX bundle中RegistrySearch检测Access Database Engine始终失败如何解决

问题原因

  • 核心原因是64位Windows系统的WOW64注册表重定向机制:32位程序访问HKLM\SOFTWARE路径时,系统会自动重定向到HKLM\SOFTWARE\Wow6432Node\,只有64位程序才会访问真实的HKLM\SOFTWARE路径。
  • WiX的RegistrySearch默认会继承安装包自身的架构属性,如果你的bundle是32位架构,默认只会搜索32位重定向路径下的注册表项,而64位版本的Microsoft Access Database Engine的注册表项默认写入64位路径,因此搜索失败。
  • 你其余的RegistrySearch能正常工作,大概率是对应的注册表项刚好存在于默认搜索的重定向路径下。

解决方案

方案1:仅检测64位Access引擎(适配你当前要安装的64位安装包)

给RegistrySearch显式添加Win64="yes"属性,强制搜索64位注册表路径,修改后的代码如下:

<util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine" Result="exists" Variable="AccessDbInstalled" Win64="yes" />

<PackageGroup Id="AccessDb">
  <ExePackage
      Id="AccessDb14"
      Cache="no"
      Compressed="yes"
      PerMachine="yes"
      Permanent="yes"
      Vital="yes" 
      SourceFile="Prereqs\AccessDatabaseEngine_X64.exe"
      InstallCommand="/quiet /norestart"
      InstallCondition="NOT AccessDbInstalled">
  </ExePackage>
</PackageGroup>

方案2:同时兼容32/64位Access引擎检测

如果需要避免用户已经安装了32位版本的Access引擎时重复安装,可以同时添加两个注册表搜索,只要任意一个存在就跳过安装:

<!-- 检测64位Access Database Engine -->
<util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine" Result="exists" Variable="AccessDbInstalledX64" Win64="yes" />
<!-- 检测32位Access Database Engine -->
<util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine" Result="exists" Variable="AccessDbInstalledX86" Win64="no" />

<PackageGroup Id="AccessDb">
  <ExePackage
      Id="AccessDb14"
      Cache="no"
      Compressed="yes"
      PerMachine="yes"
      Permanent="yes"
      Vital="yes" 
      SourceFile="Prereqs\AccessDatabaseEngine_X64.exe"
      InstallCommand="/quiet /norestart"
      InstallCondition="NOT (AccessDbInstalledX64 OR AccessDbInstalledX86)">
  </ExePackage>
</PackageGroup>

内容的提问来源于stack exchange,提问作者prb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 07:57:03