我该如何在Visual Studio工具栏中添加WebView2控件?

9
在Visual Studio 2019中,使用Nuget,我安装了Microsoft.Web.WebView2包。
PM> Install-Package Microsoft.Web.WebView2 -Version 0.9.430

根据网上的说明,我已经安装了新的 Microsoft Edge Chromium Canary 版本(这很重要)。

现在,当我打开工具箱时,我找不到任何 WebView2 控件。

在此之前,我已经安装了 WebView 控件(旧版本,适用于旧版 Edge 浏览器)。

安装完 WebView 后,控件立即出现在工具箱中。

但是,WebView2 控件并非如此。

我试图手动添加来自 Microsoft.Web.WebView2 包的所有控件到工具箱中。

但是,Visual Studio 拒绝加载以下文件夹中找到的 WebView2Loader.dll

C:\Users\bernard\.nuget\packages\microsoft.web.webview2\0.9.430\build\x86

我也尝试了在DLL中找到的内容

C:\Users\bernard\.nuget\packages\microsoft.web.webview2\0.9.430\build\x64

是否可能在工具箱中安装WebView2控件?

如果可以,怎么做?

8个回答

7
我也遇到了这个问题。我按照入门教程中的指示操作:

https://learn.microsoft.com/en-us/microsoft-edge/webview2/gettingstarted/winforms

我还安装了Canary Edge,但控件仍未出现。有趣的是,Microsoft.Web.WebView2.WinForms引用最初未显示在我的Windows窗体项目的引用中。现在它们已经出现了,但不清楚为什么在最初使用Nuget安装Canary和最新版本的WebView2控件后需要执行以下任何步骤。

  1. 重新安装Canary后,重新启动Windows
  2. 清理项目
  3. 在管理Nuget包中,将WebView2包重新安装到较低版本(我使用了当前版本的预发布版0.9.538-prerelease)

第三步之后,WebView2控件的库引用首次出现在我的项目引用中,并且我能够在表单设计器中使用它们。

注意:尝试更新控件到0.9.538的发布版本会导致引用从引用中消失,WebView2控件对于表单设计器也不再可用。重新安装预发布版解决了这个问题,因此似乎0.9.538的发布版支持的范围比其预发布版小。

简而言之:不要更新到最新版本0.9.538,只需使用0.9.538预发布版。


6

您需要确保在按名称搜索软件包的文本框旁选择“包括预发行版”的复选框。然后选择一个带有预发行版本标签的版本。


这对我有用。谢谢。 请确保选择“包括预发布版本”,然后选择“0.9.538-prerelease”进行安装。 - Manish Gupta

6
即使使用了预发布版本,它在Visual Studio 2017 Community版16.6.6中的工具箱中仍未显示。
我的解决方案是执行以下操作:
  1. 在Visual Studios中右键单击工具栏
  2. 选择“选择项目...”
  3. 单击“.NET Framework组件”选项卡
  4. 单击“浏览”,可能需要等待扫描完成
  5. 导航到“\packages\Microsoft.Web.WebView2.0.9.538-prerelease\lib\net462”
  6. 为您的应用程序类型选择正确的DLL
  7. 选择文件后,单击窗口中的“确定”按钮
解决方案摘自此处: https://developercommunity.visualstudio.com/content/problem/1112781/webview2-control-is-missing-from-toolbox.html

这对我来说是将其纳入工具箱的最成功方法。每次新项目都需要再次添加它 :) - Johan Danforth
错误 "目标平台的工具箱项目无法动态枚举"。 - HackSlash

4

编辑:根据此帖子,不管什么版本都需要使用Edge的Canary或Dev版或者Edge WebView2 Preview才能正常工作,尽管发布说明中表示该版本应该可以工作。

人们遇到这个问题的主要原因是他们没有安装所需版本的Edge浏览器。

请查看发布说明。对于每个版本,你可以看到“最低 Microsoft Edge 版本”。例如,当你安装最新的WebView2版本0.9.579(发布于2020年7月20日)时,它需要Edge 86.0.579.0

enter image description here

但是官方Edge版本(当天)为84.0.522。

enter image description here

所以答案是:

enter image description here

重要提示: 不要降级! 卸载WebView2 Nuget软件包,重新启动VS,安装旧版本以保险起见。


2

我最初安装的是版本0.9.579,认为预发布组件从0.9.538将包含在更新版本中 - 没有这样的运气。目前看来这些组件只在预发布版本中 - 我安装了0.9.579预发布版,并在工具箱中获得了Webview2。


2

你是如何让WebView2组件显示在你的工具箱中的? - Jim Wilcox
从今天起,您需要选择一个预发布版本。 "0.9.538" 与 .net 不兼容。 "0.9.538-prerelease" 可以正常工作。祝你好运。 - MattPerry

0

刚刚尝试了一下webView2 v1.0.721-prerelease,它可以正常工作。 在创建一个新的winforms项目并安装webview2 nuget包后,在工具箱中显示之前,我确实需要进行重建解决方案构建。


0
有可能将WebView2控件安装在工具箱中吗?
恐怕您现阶段无法获得所需的结果。
正如此链接所示,webview2不支持C#项目,只支持C++项目。微软将在未来将其应用于.Net项目。

enter image description here

此外,当您在NuGet包管理器UI中找到此软件包时,您会发现它与C++有关。

enter image description here

希望不久之后我就能在网络项目中使用它。


谢谢。我以为这个包也适用于.NET,但看起来并不是这样。 - schlebe
请看我的回答 - 现在支持WebView2。 - duck
此答案已过时。@schlebe 请选一个最新的。 - Jack Miller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接