在winforms应用程序中将WebBrowser类升级为WebView类

4
在我的WinForms应用程序中,我使用了WebBrowser类,该类正在使用IE浏览器。我想将其更新为WebView类,以便我可以使用Edge浏览器。这就是为什么我安装了Microsoft.Toolkit.Forms.UI.Controls.WebView包的原因。然后,我更改了一些现有的代码,使其与WebView兼容。但是当我运行项目时,我在安装此包后发现以下错误。
“项列表中的项目“C:\Projects\windows-v2\packages\System.Runtime.WindowsRuntime.4.6.0\build\net461....\ref\netstandard2.0\System.Runtime.WindowsRuntime.dll”未为元数据“CopyLocal”定义值。要使用此元数据,请通过指定%(ReferencePath.CopyLocal)来限定它,或确保此列表中的所有项目都定义了此元数据。”

看起来你正在查找错误的包。你需要安装 Microsoft.Toolkit.Forms.UI.Controls.WebView - Reza Aghaei
抱歉,那是我的错误。实际上我已经安装了那个包。我已经更新了文本。 - Md Isfar Uddin
你有关于提到的错误的任何想法吗?我按照你在答案中描述的相同步骤进行了操作。@RezaAghaei - Md Isfar Uddin
我在一个干净的解决方案/项目中尝试了一下,没有任何问题。所以我建议你创建一个干净的解决方案/项目并尝试一下。 - Reza Aghaei
是的,清晰的解决方案可行。但现有解决方案存在问题。 - Md Isfar Uddin
很难猜测本地项目中正在发生什么。在这种情况下,我可能会清理packages文件夹,并确保使用正确的包版本后,还原packages。 - Reza Aghaei
2个回答

3
我找到了解决方案并回答了自己的问题。如果其他人遇到相同的问题,这会有所帮助。
问题不在代码中,而是出现在 Visual Studio 升级问题上。之前该项目使用的是 VS 2015 版本,但是当我升级 webView 时,我使用了 VS 2017 版本。这就是显示错误 "ReferencePath" does not define a value for metadata "CopyLocal" 的原因。
要解决此问题,请转到以下目录:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin
打开 Microsoft.Common.CurrentVersion.targets 文件。然后在第 3961 行将 `...Include="@(ReferencePath)"` 更改为 `...Include="@(ReferencePath.CopyLocal)"`。

啥?去一个文件夹,然后是行号?我没听懂。你能解释一下吗?谢谢... - Adam Cox
我的错误。忘记添加文件名了。已经编辑过了。顺便说一下,谢谢提醒。 - Md Isfar Uddin
3
2019年版本的VS是Line 3948,或更高版本,你需要找到标签<_CopyLocalFalseRefPaths>。 - IR_IR
这个解决方案对我有用,但我还必须将packages.config迁移到PackageReference。 - Matias Masso

2
要在Windows Forms应用程序中使用 WebViewCompatible 控件:
  1. Install package Microsoft.Toolkit.Forms.UI.Controls.WebView
  2. Right click on an empty area in Toolbox → select Choose Items → From the Choose Toolbox Items → choose .NET Framework Component tab → Click on Browse → Browse the package folder and choose Microsoft.Toolkit.Forms.UI.Controls.WebView dll → Click Open → Click OK
  3. Drop an instance of WebViewCompatible control on the form.
  4. In the Load event or in constructor after InitializeComponent add code to navigate to the address you want:

    webViewCompatible1.Navigate("https://www.google.com");
    

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