Frank's Lab

Back

问题背景#

在开发 Dayflow(Tauri + React + Rust)时,执行 npm run tauri dev 报错,原生窗口无法弹出。

初步判断是 WebView2 Runtime 的架构不匹配:当前应用需要 x64 版 Edge WebView2 Runtime,但机器上已有的运行时环境可能不是正确的 x64 版本。

初始尝试#

我先从 https://developer.microsoft.com/en-us/microsoft-edge/webview 下载 Evergreen Bootstrapper,预期它能自动安装匹配架构的 WebView2 Runtime。

实际结果是安装失败:

随后我又尝试以管理员身份强制安装,但在对应目录里仍然没有发现预期文件。

原因分析#

机器上原本已经存在 32 位 WebView2,而 Evergreen 安装器在历史行为上存在目录与架构混淆的问题。

MicrosoftEdge/WebView2Feedback 的 Issue 1044 中提到,Bootstrapper/Standalone Installer 可能会把 x64 和 x86 都安装到:

%ProgramFiles(x86)%\Microsoft\EdgeWebView\Application
text

后安装的版本可能覆盖前一个版本,最终导致运行时架构异常。

参考链接:https://github.com/MicrosoftEdge/WebView2Feedback/issues/1044

如果要验证 msedgewebview2.exe 的架构,可以查看 PE 头:

  • 8664 表示 x64;
  • 14C 表示 x86。

解决思路#

最终我放弃了 Bootstrapper,改用 Fixed Version(固定版本)运行时。

这样做的好处是:不依赖系统已有 WebView2 的注册表和默认安装路径,而是把运行时解压到一个明确的自定义目录,再通过环境变量告诉应用去哪里找 msedgewebview2.exe

需要设置的关键环境变量是:

  • WEBVIEW2_BROWSER_EXECUTABLE_FOLDER:指向包含 msedgewebview2.exe 的解压目录;
  • WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS:可选,用于传递额外启动参数,例如禁用 GPU、打开日志,排除显卡驱动问题。

固定版本安装与配置脚本#

$cabPath = "...\Microsoft.WebView2.FixedVersionRuntime.142.0.3595.80.x64.cab"
$version = "142.0.3595.80"
$destRoot = "C:\WebView2Fixed\x64"
$dest = Join-Path $destRoot $version

New-Item -ItemType Directory -Force -Path $dest | Out-Null
Write-Host "解压到: $dest"
& expand.exe $cabPath -F:* $dest

$exe = Get-ChildItem -Path $dest -Filter msedgewebview2.exe -Recurse | Select-Object -First 1
if (-not $exe) { Write-Error "解压后未找到 msedgewebview2.exe"; exit 1 }

$env:WEBVIEW2_BROWSER_EXECUTABLE_FOLDER = (Split-Path -Parent $exe.FullName)
$env:WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS = "--disable-gpu --enable-logging --v=1"
Write-Host "WEBVIEW2_BROWSER_EXECUTABLE_FOLDER=$env:WEBVIEW2_BROWSER_EXECUTABLE_FOLDER"
powershell

结果#

固定版本 WebView2 Runtime 成功解压并可用。通过环境变量显式指定运行时目录后,Tauri 应用可以稳定使用 x64 版 WebView2,不再依赖系统中可能混乱的 Evergreen 安装状态。

这类问题的关键是不要只相信安装器“应该会装对”。当 x86/x64 架构混在一起时,直接使用 Fixed Version Runtime 反而更可控。

重装 x64 版 Edge WebView2 的心酸
https://frank-whw.com/blog/articles/fixed-version-webview2
Author Frank
Published at 2025年11月16日