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

WIX 4项目中WebView2重复安装问题求助

WebView2检测逻辑错误分析与修复

你的问题核心是注册表搜索路径错误,导致无法正确识别已安装的WebView2 Runtime,进而触发不必要的安装动作。以下是具体问题点和修复方案:

问题1:注册表搜索目标错误

你当前使用的注册表项{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}是Microsoft Edge浏览器的客户端ID,而非WebView2 Runtime的独立安装版ID。正确的WebView2 Runtime注册表项ID为{8A69D345-D564-463C-AFF1-A69D9E530F96}。

问题2:Bitness配置不明确

Bitness="default"在64位系统中,32位安装包会自动重定向到Wow6432Node路径,可能导致检测不到64位的WebView2 Runtime。建议明确指定Bitness,或同时检测32位和64位路径。

问题3:Deferred阶段环境变量访问问题

你的自定义动作是Execute="deferred",此阶段无法直接访问用户环境变量$env:TEMP,可能导致下载路径失效,进而引发安装错误。


修复后的代码示例

<!-- 检测WebView2 Runtime是否安装:同时覆盖32位和64位系统 -->
<Property Id="WVRTINSTALLED">
  <!-- 检测64位系统的WebView2 Runtime -->
  <RegistrySearch Id="WVRTInstalled64" Root="HKLM" Key="SOFTWARE\Microsoft\EdgeUpdate\Clients\{8A69D345-D564-463C-AFF1-A69D9E530F96}" Name="pv" Type="raw" Bitness="64" />
  <!-- 如果64位未检测到,检测32位版本 -->
  <RegistrySearch Id="WVRTInstalled32" Root="HKLM" Key="SOFTWARE\Microsoft\EdgeUpdate\Clients\{8A69D345-D564-463C-AFF1-A69D9E530F96}" Name="pv" Type="raw" Bitness="32" />
</Property>

<!-- 下载并安装WebView2 Runtime:使用WiX内置的TempFolder属性替代环境变量 -->
<CustomAction Id="DownloadAndInvokeBootstrapper" Directory="TEMP" Execute="deferred" Impersonate="no" 
  ExeCommand="powershell.exe -WindowStyle Hidden Invoke-WebRequest -Uri &quot;https://go.microsoft.com/fwlink/p/?LinkId=2124703&quot; -OutFile &quot;[TempFolder]\MicrosoftEdgeWebview2Setup.exe&quot;; &amp; &quot;[TempFolder]\MicrosoftEdgeWebview2Setup.exe&quot; /install" 
  Return="check" />

<!-- 调整执行条件:仅在安装/修复且未检测到WebView2时执行 -->
<InstallExecuteSequence>
  <Custom Action="DownloadAndInvokeBootstrapper" Before="InstallFinalize" Condition="NOT REMOVE AND NOT WVRTINSTALLED" />
</InstallExecuteSequence>

额外说明

  • 使用pv注册表值而非EBWebView:pv存储的是WebView2 Runtime的版本号,是官方推荐的检测字段。
  • 添加Impersonate="no":Deferred阶段需要管理员权限,关闭模拟才能正确执行系统级操作。
  • 明确指定Directory="TEMP":使用WiX的内置TEMP属性,避免环境变量访问问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 04:36:33