【发布时间】:2021-10-19 18:54:12
【问题描述】:
我正在尝试学习使用 C# 利用 WebView2 元素创建应用程序。因为我试图将它分发给可能没有 Edge 的计算机,所以我试图利用 Webview2 运行时的固定版本。我相信我将文件上传到正确的目录并确保“userDataFolder”的位置位于可写文件中,但我仍然收到以下错误消息:
Microsoft.Web.WebView2.Core.WebView2RuntimeNotFoundException:“找不到兼容的 Webview2 运行时安装来托管 WebView。”
我在此处存储了固定版本运行时的文件:C:\Users\janif\source\repos\browserPackageV1\browserPackageV1\bin\Debug\net5.0-windows\browserPackageV1.exe.WebView2\Microsoft.WebView2.FixedVersionRuntime .94.0.992.50.x86
这是我的代码:
'''
public Form1()
{
InitializeComponent();
webBrowser.Source = new Uri("https://www.microsoft.com/en-us/");
InitWebView();
}
String locOfRuntime = @"\\browserPackageV1\\bin\\Debug\\net5.0-windows\\browserPackageV1.exe.WebView2";
String locOfSavedState = @"\\browserPackageV1\\bin\\Debug\\net5.0-windows\\temp";
async void InitWebView()
{
await CoreWebView2Environment.CreateAsync(
browserExecutableFolder: locOfRuntime,
userDataFolder: locOfSavedState);
}
'''
我错过了什么吗?我应该将“browserExecutableFolder”指向其他地方吗?我有错误的文件位置语法吗?我目前是一名学生,我正在尝试自学如何做到这一点,但是所有关于这方面的文档都非常模糊,我遇到了困难。我已经看到 Microsoft 使用“WebView2.EnsureCoreWeb2Async”的文档,并尝试过(见下文):
'''
async void InitWebView()
{
await joinBrowser.EnsureCoreWebView2Async
(
Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateAsync
(
browserExecutableFolder: locOfRuntime,
userDataFolder: locOfState,
CoreWebView2EnvironmentOptions options = null
)
);
}
'''
...但这也不起作用。 VS 不接受“CoreWebView2EnvironmentOptions options = null”。有人可以在这里帮助我吗?我找不到任何可以真正使 WebView2 的固定版本正常工作的明确内容。
谢谢!
【问题讨论】: