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

Jay*_*n67 6 software-distribution chromium-embedded cefsharp

使用 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, server 2016 Standard

  • 构建设置为 x86,未对 Any CPU 模式进行任何配置更改

  • Windows 窗体应用程序

  • 来自 NuGet 的 CefSharp 71.0.0 版(单独通过包管理控制台简单 CefSharp 应用程序在运行时丢失文件

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

更新:

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

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

Pet*_*pin 7

您需要随基于 CefSharp 的项目一起提供的 Visual C++ dll:

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

  • msvcp120.dll
  • msvcr120.dll

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

#Example of files for VC++ 2017(141), there will be a few less files for VC++2015(140) and a few more for VC++ 2019(142), copy everything from the `Microsoft.VC14x.CRT` folder where `x` matches the VC++ Version
concrt140.dll
msvcp140.dll
msvcp140_1.dll
msvcp140_2.dll
vccorlib140.dll
vcruntime140.dll
Run Code Online (Sandbox Code Playgroud)

可以在您的开发 PC 上的以下位置找到文件:

  • C:\Windows\System32
  • C:\Program Files (x86)\Microsoft Visual Studio\[Version]\[Edition]\VC\Redist\MSVC\[Version]\[x64|x86]\Microsoft.VC14x.CRT 文件夹。
  • 如果您在机器上查找文件时遇到问题,请参阅底部部分,与以下文件VS2015相比,它们的文件夹结构略有不同VS2017/2019

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

通用 CRT是必需的Visual C++Windows 10默认安装在它上面。Universal CRT支持的本地部署见https://docs.microsoft.com/en-us/cpp/windows/universal-crt-deployment?view=vs-2019#local-deployment

对于 Windows 7/8/8.1,您需要按照Universal CRT上面的链接预先安装或部署文件。

要部署可再发行的 Visual C++ 文件,您可以使用 Visual Studio 中包含的 Visual C++ 可再发行包(VCRedist_x86.exe、VCRedist_x64.exe 或 VCRedist_arm.exe)。在 Visual Studio 2017 中,这些文件可以在 Program Files[ (x86)]\Microsoft Visual Studio\2017\edition\VC\Redist\MSVC\lib-version 文件夹中找到,其中 edition 是安装的 Visual Studio 版本,lib -version 是要重新分发的库的版本。在 Visual Studio 2015 中,这些文件可以在你的 Visual Studio 安装目录下的 Program Files [(x86)]\Microsoft Visual Studio version\VC\redist\locale 中找到。另一种选择是使用可再发行合并模块(.msm 文件),它在 Visual Studio 2017 中可以在 Program Files [(x86)]\Microsoft Visual Studio\2017\edition\VC\Redist\MSVC\lib-version\MergeModules\ 文件夹中找到。在 Visual Studio 2015 中,这些可以在 Program Files [(x86)]\Common Files\Merge Modules 中找到。也可以在应用程序本地文件夹中直接安装可再发行的 Visual C++ DLL,该文件夹包含您的可执行应用程序文件。出于维修原因,我们不建议您使用此安装位置。

根据https://docs.microsoft.com/en-us/cpp/windows/redistributing-visual-cpp-files?view=vs-2019的位置VS2015VS2017/2019.