如何限制Evergreen WebView2使用特定版本?
问题背景
我们通过CreateCoreWebView2EnvironmentWithOptions创建了evergreen WebView2环境,当前使用版本为120.0.2210.61(取自文件C:\Users\<name>\AppData\Local\Temp\<prog>\BrowserData\EBWebView\Last Version)。销毁WebView2控件时,会对其他COM控件产生异常影响。部分运行3年未更新的旧版本程序,在WebView2组件周六晚间更新后出现特定COM错误,且在安装最新WebView2更新的本机上,新版本程序也能复现该问题。希望通过强制使用旧版WebView2验证问题是否由新版本更新导致。
核心问题
是否可以限制WebView2使用特定版本?
解决方案
可以强制WebView2使用指定版本,以下是几种可行方式:
固定版本Runtime部署:下载目标旧版本的WebView2固定版本安装包,部署到目标机器后,调用
CreateCoreWebView2EnvironmentWithOptions时,将第二个参数browserExecutableFolder设置为该固定版本的安装目录(即包含msedgewebview2.exe的文件夹路径)。WebView2会优先使用该路径下的版本,而非系统默认的evergreen版本。打包旧版本到应用目录:将旧版本WebView2的核心运行文件打包到你的应用安装目录中,在创建环境时指定该目录为
browserExecutableFolder。这种方式能确保应用不受系统WebView2更新影响,适合临时测试场景。复用已安装的旧版本(限留存情况):若目标机器上仍保留旧版本WebView2 runtime,可查找其安装路径并在
CreateCoreWebView2EnvironmentWithOptions中指定。但该方式不可靠,因为evergreen更新通常会覆盖旧版本。
注意事项
- 需下载对应系统架构(x86/x64/ARM)的固定版本安装包。
- 确保应用对指定的
browserExecutableFolder路径有读写访问权限。 - 此方法仅建议用于临时验证问题,后续需排查新版本WebView2与COM控件的冲突根源,或升级应用适配最新WebView2版本。
内容的提问来源于stack exchange,提问作者xMRi

