我创建了一个新的控制台项目并使用 NuGet 添加CefSharp.Common
和CefSharp.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.dll
、icudtl.dat
、CefSharp.BrowserSubprocess.exe
和CefSharp.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 已发布。我试图用它运行并收到相同的错误。