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

问题描述 投票:1回答:1

使用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,并且我的机器上没有这些目录。

附加信息:

  • 开发机器Windows 10,服务器2016标准
  • 构建设置为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 ++ Redistributable dll的服务器上工作。但是,我需要CEFSharp浏览器在现有应用程序引用的用户控件中工作。

cefsharp chromium-embedded software-distribution
1个回答
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 ++,否则您将无法找到它们:

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

© www.soinside.com 2019 - 2024. All rights reserved.