【发布时间】:2021-07-12 07:18:35
【问题描述】:
我想使用 WebView2 (a) 显示一个网站,以及 (b) 在我的 WPF 应用程序上显示一个本地 .pdf 文件。
https://docs.microsoft.com/en-us/microsoft-edge/webview2/get-started/wpf
微软文档说我需要在我的电脑上下载两个东西作为“先决条件”:
- Microsoft Edge WebView2
- Microsoft Edge Insider 频道
对于第一个,我下载了“Evergreen Bootstrapper”(不是“Evergreen Standalone Installer”或“Fixed Version”)。 对于第二个,我下载了适用于 Windows 10 的“Canary Channel”。
这些是正确的选择吗?
我在不初始化的情况下运行代码,WebView2控件全黑,不渲染微软网站。
xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"
<wv2:WebView2 Name="webView" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Source="https://www.microsoft.com" />
现在当我尝试调用 InitializeAsync() 方法时,它会抛出异常:
private async void InitializeWebView2Async()
{
try
{
await webView.EnsureCoreWebView2Async(null);
}
catch (Exception ex)
{
}
}
异常消息:“{”无法加载 DLL 'WebView2Loader.dll':找不到指定的模块。 (HRESULT 异常:0x8007007E)"}"
堆栈跟踪“在 Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateCoreWebView2EnvironmentWithOptions(字符串 browserExecutableFolder,字符串 userDataFolder, ICoreWebView2EnvironmentOptions 选项, ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler environment_created_handler)\r\n 在 Microsoft.Web.WebView2.Core.CoreWebView2Environment.d__3.MoveNext()\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(任务任务)\r\n 在 Microsoft.Web.WebView2.Wpf.WebView2.c__DisplayClass26_0.
d.MoveNext()\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task 任务)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.GetResult()\r\n at MyProject.MyUserControl.d__3.MoveNext() 在 C:\Projects\MyProject\Views\MyUserControl.xaml.cs:line 58" 字符串
谢谢。
【问题讨论】:
-
您是否为项目安装了 wv2 作为 NuGet 包?
标签: wpf xaml microsoft-edge webview2