我有一个使用 WPF 的 CefSharp 项目,我正在将我的参考从 105.3.390 升级到 119.4.30(这些是我根据托管代码的程序需要的特定版本)。 为什么我升级时遇到一些我似乎无法弄清楚的错误。 第一个是在此代码行上:
browser.LoadError += (sender, e) =>
ShowBrowserError(
new Exception($"<br />Frame:\t{e.Frame}<br />URL:\t{e.FailedUrl}<br />Error Code:\t{e.ErrorCode}"));
它告诉我
The type 'LoadErrorEventArgs' is defined in an assembly that is not referenced. You must add a reference to assembly 'CefSharp, Version=119.4.30.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138'
我对此感到困惑。 通常,出现这样的错误时,您只需安装它引用的包即可。 但是,当我访问 NuGet 时,我没有看到只有名称
CefSharp
的包。 我看到 CefSharp.Common
但它应该已经被引用为 CefSharp.Wpf
的子包。 我确实尝试直接引用它,以防它需要,但没有任何改变。 我不知道在哪里可以获得它想要的包裹。
我还有代码行
_browser.LoadHtml(Utility.GetErrorHtml(ex));
和 Cef.Initialize(new CefSettings());
。 它告诉我 LoadHtml
和 Cef
根本没有定义,甚至没有在未引用的程序集中定义。 从我在文档中看到的内容来看,这应该仍然有效,所以我在这里错过了什么?
好吧,我想出了这个。 这是答案,以防其他人遇到这个问题。 我还将我的项目从 net48 目标更新为 net8.0-windows (.NET Core)。 看起来
CefSharp.Common
包不是正确的,并且必须为 .NET Core 项目安装一个单独的 CefSharp.Common.NETCore
包。 一旦我安装了那个,错误就消失了并且它起作用了。 奇怪的是,当我使用智能感知时,它引导我找到了非核心的包。 我不得不在 NuGet 上搜索通用包,发现核心包已经存在。
希望对其他人有帮助。