请注意,本文不是重复的。我有一个不同的问题
我的客户端计算机无法在任何WPF项目中看到WebView2内容。经过一些调试工作,我将其定位为EnsureCoreWebView2Async
调用。我给他发了一个全新的WPF项目,代码如下:
private async void Window_Loaded(object sender, RoutedEventArgs e)
{
this.wv.CoreWebView2InitializationCompleted += this.Wv_CoreWebView2InitializationCompleted;
MessageBox.Show("EnsureCoreWebView2Async is about to run");
await this.wv.EnsureCoreWebView2Async();
MessageBox.Show("EnsureCoreWebView2Async finished");
}
private void Wv_CoreWebView2InitializationCompleted(object? sender, Microsoft.Web.WebView2.Core.CoreWebView2InitializationCompletedEventArgs e)
{
if (e.InitializationException is not null)
{
MessageBox.Show("EnsureCoreWebView2Async has exception: " + e.InitializationException);
}
else
{
MessageBox.Show("EnsureCoreWebView2Async successful: " + e.IsSuccess);
this.wv.CoreWebView2.Navigate("https://www.example.com");
}
}
我甚至试图将Window_Loaded
中的代码包装在Dispatcher.Invoke()
调用中,以确保它在UI线程中执行,但结果相同。
在我测试的所有其他计算机(Windows 11和10)上,我们看到所有应该显示的消息,但在他的计算机(Windows 10,最新更新)上只有"EnsureCoreWebView2Async即将运行";是显示。之后什么也没发生。他已经安装了VS2022,我试着调试,跳过EnsureCoreWebView2Async
永远不会结束。
我们尝试重新安装。net 6。试图运行WebView2安装(常青引导程序从官方网站下载)结果提示它已经安装。
我试着在我的电脑上编译并发送到他的电脑上,他的电脑不会显示网站(呼叫永远不会结束)。我让他在他那边编译并发送给我,我的电脑显示网站显示的所有消息都很好,所以我确信这不是因为编译器/编译环境。
到目前为止,我没有发现任何第二台电脑有同样的问题,但根据我们的Windows Store审查,有人也有这个问题(他们的UI是空白的)。我找不出是什么原因引起了这个问题。请告诉我们如何调试这个问题。
就我的情况而言,这个问题是通过卸载他的WebView2运行时(从控制面板)并重新安装它来解决的,现在每个工作。我猜现在我们永远不会知道是什么原因了。