【问题标题】:Activating Fixed Version using Webview2 in C# (Webform)在 C# (Webform) 中使用 Webview2 激活固定版本
【发布时间】: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 的固定版本正常工作的明确内容。

谢谢!

【问题讨论】:

    标签: c# webforms webview2


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 非常感谢!非常感谢您在这方面的帮助!
    • 我很高兴它有帮助,@JaniferCheng。如果它解决了您的问题,请您将其标记为已接受的答案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    • 2011-05-21
    • 1970-01-01
    相关资源
    最近更新 更多