使用CEFSharp浏览器构建应用程序,在我的机器上正常工作,但在服务器上崩溃时出现以下错误:
System.IO.FileLoadException:无法加载由'CefSharp.Core.dll'导入的过程。
我在互联网上看到过这个问题,最常见的解决方案似乎是安装VC ++ Redistributable。但是,我没有在我们的生产服务器上访问。在开发服务器中,我尝试安装redistrituable(x86,x64,2017和2013)并没有什么区别。计算机是64位,但应用程序是32位,所以我尝试了一切。
有人可以告诉我具体需要添加到应用程序目录中的文件,以使CEFSharp工作。本文档的第6部分:https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions#6-how-do-i-include-the-visual-studio-c-2012-redistributables-on-the-target-app列出了必要的文件目录,但我使用的是Visual Studio 2017,并且我的机器上没有这些目录。
附加信息:
更新:
虽然我仍然无法让CEFSharp在我的项目中工作,但我接受了Peter Liapin的答案,因为它确实回答了我提出的问题。现在我知道VC ++ Redistributable中的哪些文件要复制到服务器上的应用程序文件夹中,我只是没有他在我的计算机或服务器上提到的特定dll。
此外,我使用CEFSharp创建了一个新的测试Windows窗体项目,它在没有VC ++ Redistributable dll的服务器上工作。但是,我需要CEFSharp浏览器在现有应用程序引用的用户控件中工作。
您的基于CefSharp的WinForms项目需要提供两个DLL:
如果您使用CefSharp v63.0.3或更低版本:
如果您使用CefSharp v65.0.0-pre01或更高版本:
这两个文件都可以在您的Dev PC上的C:\Windows\System32
或C:\Program Files (x86)\Microsoft Visual Studio\[Version]\[Edition]\VC\Redist\MSVC\[Version]\[x64|x86]\Microsoft.VC150.CRT
文件夹中找到。
请注意,您必须在PC上安装适当版本的Visual C ++,否则您将无法找到它们:
我通常将这些文件复制到解决方案根文件夹中的DLL子文件夹中,然后使用项目设置中的Post-build事件将它们复制到build的$(TargetDir)
/ output文件夹中。