3

我创建了一个新的控制台项目并使用 NuGet 添加CefSharp.CommonCefSharp.OffScreen.

我添加了以下代码:

static void Main(string[] args)
{
    try
    {
        ChromiumWebBrowser Chromium = new ChromiumWebBrowser("www.google.com");
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex);
        Console.WriteLine(ex.Message);
    }
    Console.WriteLine("Test Complete Press Enter to Close Window");
    Console.ReadLine();
}

然后我发布了项目并尝试运行它,我收到了这个错误:System.IO.FileLoadException: A procedure imported by 'CefSharp.Core.Runtime.dll' could not be loaded.

以下文件位于已发布的文件夹中

  • CefSharp_Test.exe
  • CefSharp_Test.exe.config.deploy
  • CefSharp_Test.exe.deploy
  • CefSharp_Test.exe.manifest
  • CefSharp.Core.dll.deploy
  • CefSharp.Core.Runtime.dll.deploy
  • CefSharp.dll.deploy
  • CefSharp.Offscreen.dll.deploy

我看到 CefSharp 最近推出了一项创建CefSharp.Core.Runtime.dll- https://github.com/cefsharp/CefSharp/issues/3319的更改,我认为这个问题在某种程度上与 CefSharp 确定是否Runtime.dll应该使用 x86 或 x64 相关,但我一直无法找到解决问题的方法。

该项目在 Visual Studio 中运行时不会出现问题。

编辑 -从 CefSharp 自述文件看来,libcef.dllicudtl.datCefSharp.BrowserSubprocess.exeCefSharp.BrowserSubprocess.Core.dll是必需的依赖项。我已将这些文件添加到项目中,设置为始终复制并重新发布。错误现在读取System.IO.FileNotFoundException: Could not load file or assembly 'CefSharp.Core.Runtime.dll' or one of its dependencies. The specified module could not be found.

编辑 -这似乎是一个已知问题,将在 CefSharp 的未来版本中修复。https://github.com/cefsharp/CeSharp/pull/3391

编辑 -我尝试使用 CefSharp v88.2.40-pre 运行它并收到相同的错误。

编辑 - CefSharp v88.2.40 已发布。我试图用它运行并收到相同的错误。

4

1 回答 1

2

我今天在进行cefsharp更新时遇到了同样的错误。我删除了cef.redist.x64、cef.redist.x86、CefSharp.Common和CefSharp.WinForms插件。然后我从nuget包管理器窗口重新安装了CefSharp.WinForms插件。

再次报同样的错误。然后我查看了插件版本。cef.redist.x64、cef.redist.x86版本和CefSharp.Common、CefSharp.WinForms版本有区别。因为NuGet包管理器,安装的是稳定版CefSharp.Common 和 CefSharp.WinForms 插件。

我一次又一次地删除插件。我检查了包源。我什至尝试了替代方案。最后,我尝试通过包管理器控制台安装插件。我分别安装了以下插件。

Install-Package cef.redist.x86
Install-Package cef.redist.x64
Install-Package CefSharp.Common
Install-Package CefSharp.WinForms

cef.redist.x86 和 cef.redist.x64 扩展安装没有任何问题。当安装 CefSharp.Common 扩展时,我再次遇到错误。因为控制台正在尝试安装稳定版本。

我从 nuget 包管理器窗口中选择了最新版本的 CefSharp.Common 和 CefSharp.WinForms 插件并安装了它们。最后我能够毫无错误地运行我的项目。

注意:我是为winform做的。如果像我这样的版本之间存在差异,你应该尝试一下。:)

于 2021-02-13T10:40:27.503 回答