【发布时间】:2021-03-05 22:09:06
【问题描述】:
我已经下载并附加了 WebView2 的 FixedVersionRuntime.88.0.705.81.x64 并将其附加到我的项目中。
使用以下它应该加载必要的页面,但加载时 WebView 没有崩溃但没有加载页面:
public async Task InitializeAsync()
{
string installPath = @"C:\Program Files (x86)\WebView2Runtime\Microsoft.WebView2.FixedVersionRuntime.88.0.705.81.x64\";
var webView2Environment = await CoreWebView2Environment.CreateAsync(installPath);
await browserControl.EnsureCoreWebView2Async(webView2Environment);
}
然后我在此之后设置源:
await InitializeAsync();
me.Source = new Uri(((MainViewModel)this.DataContext).Config.DefaultURL);
使用 evergreen 安装程序时,它运行良好,但在移动到固定版本时,它似乎在部署时无法正确加载。
【问题讨论】:
-
根据文档,browserExecutableFolder 应该是“包含 WebView2 运行时的自定义版本的文件夹的相对路径”。您的路径是绝对路径。:docs.microsoft.com/en-us/dotnet/api/… 看来您使用的是 x64 固定版本,但将其放在 %ProgramFiles(x86)%
-
我相信这个想法是,如果您使用固定版本,WebView2 文件将位于相对于(位于或低于)包含您的程序可执行文件的文件夹中。
-
所以我将路径更改为相对路径并转换回 x86 版本,但没有运气。它很奇怪,因为它可以识别运行时的位置并且不会出错,但似乎没有加载默认页面或任何选择的页面。
-
您的程序安装在哪里?除非您在其他位置指定 userDataFolder,否则它不能安装在 %ProgramFiles% 或 %ProgramFiles(x86)% 中。写入 %ProgramFiles% 或 %ProgramFiles(x86)% 需要管理员权限。
-
WebView2被称为“browserControl”还是“me”?不能两者兼有。