如何包括CEFSharp所需的VC ++可再发行文件

时间:2019-02-18 21:13:39

标签: cefsharp chromium-embedded software-distribution

使用CEFSharp浏览器构建应用程序,可以在我的机器上正常运行,但在服务器上崩溃并出现以下错误:

System.IO.FileLoadException:无法加载“ CefSharp.Core.dll”导入的过程。

我已经在整个互联网上看到了这个问题,最常见的解决方案似乎是安装VC ++ Redistributable。但是,我在生产服务器上没有该访问权限。在开发服务器中,我尝试安装可重分发文件(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,并且我的计算机上没有这些目录。

其他信息:

  • 开发机Windows 10,服务器2016 Standard

  • 内部版本设置为x86,未对任何CPU模式进行任何配置更改

  • Windows窗体应用程序

  • NuGet的CefSharp版本71.0.0(和分别通过软件包管理控制台Simple CefSharp application is missing files at runtime

  • 不手动使用任何类型的程序包或ClickOnce部署 将所有文件从我的计算机上传到服务器

更新:

尽管我仍然无法在项目中使用CEFSharp,但我接受了Peter Liapin的回答,因为它确实回答了我提出的问题。现在我知道了VC ++ Redistributable中的哪些文件将复制到服务器上的应用程序文件夹中,只是我在计算机或服务器上没有他提到的特定dll。

此外,我使用CEFSharp创建了一个新的测试Windows窗体项目,该项目可在没有VC ++可再发行的dll的服务器上运行。但是,我需要CEFSharp浏览器才能在现有应用程序引用的用户控件中工作。

2 个答案:

答案 0 :(得分:2)

基于CefSharp的WinForms项目需要附带两个DLL:

如果您使用CefSharp v63.0.3或更低版本:

  • msvcp120.dll
  • msvcr120.dll

如果您使用CefSharp v65.0.0-pre01或更高版本:

  • msvcp140.dll或msvcp141.dll
  • msvcr140.dll或msvcr141.dll

这两个文件都可以在Dev PC的C:\Windows\System32C:\Program Files (x86)\Microsoft Visual Studio\[Version]\[Edition]\VC\Redist\MSVC\[Version]\[x64|x86]\Microsoft.VC150.CRT文件夹中找到。

注意,您必须在PC上安装适当版本的Visual C ++,否则将无法找到它们:

我通常将这些文件复制到解决方案的根文件夹中的DLLs子文件夹中,然后使用Project设置中的Post-build事件将它们复制到构建的$(TargetDir) / output文件夹中。

答案 1 :(得分:0)

我遇到了完全相同的问题,并且可以通过将msvcp140.dll和vcruntime140.dll复制到应用程序的bin文件夹中来使工作正常。我正在将CEFSharp 75.1.143与cef.redist.x86 75.1.14一起使用。

相关问题