.NET 6应用(app2)被外部调用时WebView2无法导航指定URL
问题分析与解决方案
核心问题出在WebView2环境初始化的路径设置上:当app1启动app2时,app2的当前工作目录会继承自app1,而非app2自身的安装目录。你用Directory.GetCurrentDirectory()获取路径创建CoreWebView2Environment,会导致WebView2找不到正确的运行时依赖,最终加载失败显示空白。
修复步骤
将路径获取方式替换为app2自身的程序目录,确保无论启动方式如何,路径都准确:
修改后的代码
private async Task InitializeWebView2() { var webview = new WebView2(); myPanel.Children.Add(webview); // 使用程序自身的目录,而非当前工作目录 var appDir = AppContext.BaseDirectory; var env = await CoreWebView2Environment.CreateAsync(appDir); await webview.EnsureCoreWebView2Async(env); string someUrl = "http://google.com"; webview.Source = new Uri(someUrl); }
额外排查点
- 若问题仍存在,检查app1启动app2的代码,确认是否强制指定了错误的工作目录(比如
Process.Start时设置了WorkingDirectory参数) - 确保app2的安装目录下存在WebView2运行时的相关文件(如果使用的是捆绑版运行时,而非系统安装版)
内容的提问来源于stack exchange,提问作者sandy
相关产品推荐
相关产品推荐

