VS 2022 WinForm WebView2添加未打包浏览器扩展时出现0x80070032 COMException错误求解决方案
VS 2022 WinForm WebView2添加未打包浏览器扩展时出现0x80070032 COMException错误求解决方案
我之前在做WebView2扩展开发时也碰到过这个0x80070032的错误,给你几个实用的排查和解决方向:
先检查WebView2的版本兼容性
这个错误很多时候是因为WebView2运行时或NuGet包版本太低,不支持未打包扩展的加载。你可以:- 打开NuGet包管理器,把
Microsoft.Web.WebView2包更新到最新的稳定版; - 检查系统里安装的WebView2 Runtime版本,去微软官网下载最新的稳定版运行时覆盖安装。
- 打开NuGet包管理器,把
确认扩展本身没问题
先排除扩展的问题:把这个未打包的扩展文件夹拖到Chrome浏览器里加载,如果Chrome能正常识别并运行,说明扩展本身是正常的;如果Chrome也报错,那得先修复扩展的manifest文件或者缺失的资源。另外注意,WebView2对Manifest V3的支持需要较新的版本,如果你的扩展是V3,一定要确保WebView2版本足够新。保证加载时机和路径正确
- 绝对不要在WebView2初始化完成前调用
AddBrowserExtensionAsync,一定要等CoreWebView2InitializationCompleted事件触发后,或者用EnsureCoreWebView2Asyncawait完成后再执行添加操作; - 传递给方法的扩展路径必须是绝对路径,相对路径很容易导致识别失败,比如你可以用
Path.GetFullPath()把相对路径转成绝对路径。
- 绝对不要在WebView2初始化完成前调用
检查文件权限
如果你的扩展文件夹放在系统受保护的目录(比如C:\Program Files),应用程序可能没有访问权限。可以试试把扩展文件夹移到普通用户目录(比如Documents下),或者右键以管理员身份运行你的VS项目,看是否能加载成功。配置WebView2环境参数
初始化WebView2的时候,可以尝试添加启用扩展的参数,确保没有被禁用:var envOptions = new CoreWebView2EnvironmentOptions("--enable-extensions"); var environment = await CoreWebView2Environment.CreateAsync(null, null, envOptions); await webView21.EnsureCoreWebView2Async(environment);
这里给你一个完整的WinForm加载示例,参考一下:
private async void MainForm_Load(object sender, EventArgs e) { try { // 初始化WebView2环境 var envOptions = new CoreWebView2EnvironmentOptions("--enable-extensions"); var environment = await CoreWebView2Environment.CreateAsync(null, null, envOptions); await webView21.EnsureCoreWebView2Async(environment); // 加载未打包扩展(替换成你的绝对路径) string unpackedExtensionPath = @"D:\Projects\MyChromeExtension"; await webView21.CoreWebView2.Profile.AddBrowserExtensionAsync(unpackedExtensionPath); MessageBox.Show("扩展加载成功!"); } catch (Exception ex) { MessageBox.Show($"加载失败:{ex.Message}\n{ex.StackTrace}"); } }
你可以按照这个顺序一步步排查,大概率能解决问题。
备注:内容来源于stack exchange,提问作者Chilkunda G1
相关产品推荐
相关产品推荐

