在 C# (Webform) 中使用 Webview2 激活固定版本

Activating Fixed Version using Webview2 in C# (Webform)

我正在尝试学习使用 C# 利用 WebView2 元素创建应用程序。因为我试图将它分发给可能没有 Edge 的计算机,所以我试图利用 Webview2 运行时的固定版本。我相信我已将文件上传到正确的目录并确保“userDataFolder”的位置位于可写文件中,但我仍然收到以下错误消息:

Microsoft.Web.WebView2.Core.WebView2RuntimeNotFoundException: 'Couldn't find a compatible Webview2 Runtime installation to host WebViews.'

我在这里存储了固定版本运行时的文件: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 的固定版本工作。

谢谢!

对于与您类似的设置,我们将可执行文件存储在 Visual Studio 主项目文件夹的 'lib' 文件夹中。

当我们可以像这样初始化对 webview2 的调用时:

var newView = new WebView2()
{
   CreationProperties = new CoreWebView2CreationProperties
   {
      BrowserExecutableFolder = "lib/Microsoft.WebView2.FixedVersionRuntime.91.0.864.71.x64"
   }
};

这使得 URL 对 webview2 的引用比您必须使用的要容易得多。您对 webview2 的调用与我们不同,但您可以看到 URL 这样使用起来要容易得多。