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

2023-11-21

使用 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(以及单独通过包管理控制台简单的 CefSharp 应用程序在运行时丢失文件)

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

Update:

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

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


您需要随基于 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

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

  • 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,否则您将无法找到它们:

  • 版本 120 安装有适用于 Visual Studio 的 C++ 可再发行组件 2013年

  • 版本 140 安装有Visual C++ 可再发行版 工作室 2015年

  • 版本 141 安装有Microsoft Visual C++ 可再发行组件 对于视觉工作室 2017年

通用显像管需要由Visual C++, on Windows 10它是默认安装的。本地部署Universal CRT支持查看https://learn.microsoft.com/en-us/cpp/windows/universal-crt-deployment?view=vs-2019#local-deployment

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

要部署可再发行的 Visual C++ 文件,您可以使用 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 安装目录下找到 程序文件 [(x86)]\Microsoft Visual Studio 版本\VC\redist\语言环境。另一种选择是使用可再发行的 合并模块(.msm 文件),在 Visual Studio 2017 中可以找到 在程序文件 [(x86)]\Microsoft Visual Studio\2017\edition\VC\Redist\MSVC\lib-version\MergeModules\ 文件夹。 在 Visual Studio 2015 中,这些可以在程序文件中找到 [(x86)]\通用文件\合并模块。也可以直接 在应用程序本地安装可再发行的 Visual C++ DLL 文件夹,这是包含可执行应用程序的文件夹 文件。出于维修原因,我们不建议您使用此 安装位置。

As per https://learn.microsoft.com/en-us/cpp/windows/redistributing-visual-cpp-files?view=vs-2019的位置VS2015略有不同VS2017/2019.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • Laravel Blade 使用 $(document).ready 函数

    我正在尝试使用 laravel Blade 模板 包括一些 javascript 代码到子视图中 我有我的邮件应用程序 blade php文件 其中放置 jquery 初始化字符串 在我的子视图文件中设置 blade php我想使用一些 j

随机推荐

  • 实体框架 - 荒谬的查询,将smallint转换为int以进行比较[重复]

    这个问题在这里已经有答案了 这里没有想法了 我有一个简单的表 模型首先与实体框架映射 并生成以下 SQL p linq 0 int p linq 1 int SELECT Extent1 BucketRef AS BucketRef Ext
  • 重复数据框的行

    我正在尝试重复数据框的行 这是我的原始数据 pd DataFrame col1 1 col2 11 col3 1 2 col1 2 col2 22 col3 1 2 3 col1 3 col2 33 col3 1 col1 4 col2 4
  • 获取对父 IFRAME 的引用

    假设我有一个对包含在 IFRAME 内的文档对象的引用 如何获取对容器 IFRAME 的引用 parentNode 和 ownerDocument 都返回 null 请注意 没有可用的上下文信息 例如 window xxx 等解决方案将不起
  • 将移动应用程序同步到 Android Wear

    根据文档 打包可穿戴应用程序我正在使用以下代码 dependencies compile com google android gms play services 5 0 aar compile com android support su
  • Python Pandas - 缺少必需的依赖项 ['numpy'] 1

    从昨天开始 当我尝试在 anaconda 上导入包时出现此错误 ImportError Missing required dependencies numpy 我尝试卸载 Anaconda 和 Python 切换到 Python 2 7 但
  • 在 codeigniter 中调试路由?

    我想知道是否有任何简单的方法可以在 codeigniter 中调试路由 最好我希望能够在日志中看到以下内容 Client sent apps something Route found apps any gt applications se
  • SQL Server:拆分操作

    如何在 SQL Server 中拆分字符串 例子 输入字符串 stack over flow Result stack over flow 如果您不能使用表值参数 请参阅 SQL Server 2008 中使用表值参数的数组和列表 作者 E
  • 是否可以在 Visual Studio 中为动态对象提供智能感知?

    我在项目中使用动态对象 并且我想为该对象提供智能感知 我知道 Visual Studio 无法知道智能感知要显示什么 但如果我可以插入智能感知 我确实知道应该显示哪些条目 有没有办法扩展 Visual Studio 的智能感知 如果是这样
  • Android 测试分片

    谁能解释一下 android 中的测试分片意味着什么 如果有人可以分享任何教程将会非常有帮助 碎片这个词的意思是整体的一小部分 仅凭一个数字如何进行分片 我应该在什么基础上指定 shardIndex 定义如开发人员文档中所示 测试分片 测试
  • 如何在 Eclipse 中编辑 Maven 依赖项中的“.class”文件

    好的 我有我的 Java 项目 在项目资源管理器的 Maven 依赖项项目文件夹下 我遇到了jar文件夹 里面有一个 class文件 现在 我点击了Download Sources我可以查看 class文件作为 Java 文件 但我无法在
  • COM 如何选择如何编组接口?

    据我了解 在 COM 中实现编组的方法有以下三种 类型库编组 代理 存根编组 通过对象实现 IMarshal 现在该组件如何consumer 用户 选择使用哪一个 它是自行决定并使用首选方式 还是调用某些内置函数并为其解决问题 我目前遇到以
  • 从必需的文件扩展 Node.js 中的 Array.prototype

    我将以下内容保存在 test js 中 它成功地在浏览器中扩展了Array 但它似乎不适用于node和require 有人可以解释这里出了什么问题吗 function Array prototype max function return
  • Angularjs 中的记住我功能和令牌

    我正在寻找更好的方法来解决我的问题 我的登录表单上有记住我的功能 当用户单击记住我框时 我的 API 会向我发送令牌 我的问题是存储此令牌并在用户返回我的网站时再次对用户进行身份验证的最佳方法是什么 我以为 创建一个 Cookie 并在其中
  • R 中给定函数的包名称[重复]

    这个问题在这里已经有答案了 可能的重复 如何确定函数的名称空间 我不知道该怎么做 你如何知道 R 中某个函数的包名称 我想要一个函数 给出函数的名称 返回拥有它的包的名称 有什么建议吗 可能有更好的解决方案 但是find functionn
  • 获取列中仅出现一次的值的数量

    首先 如果相关的话 我正在使用 MySQL 尽管我认为解决方案可以跨数据库产品工作 我的问题是 我有一个带有单列的简单表格 该列没有任何约束 此列中有一些简单的数据 例如 a a b c d d 我需要获取只出现一次的值的数量 计数 从上面
  • malloc分配的内存的保护标志是什么?

    根据这个线程 分配的内存malloc至少有PROT READ PROT EXEC 否则所包含的函数无法执行 man malloc没有提到任何有关保护的内容 因此提出了这个问题 malloc 通常会返回具有读写权限的内存 某些体系结构 例如
  • h.264 视频无法在 iOS 上播放

    我有一个用 h 264 编码的视频文件无法在 iOS 上播放 我想知道原因 这是 HTML
  • Android 应用程序中的 C# .dll 库

    我目前正在使用 Monodroid 开发 Android 应用程序 我对电话应用程序相当陌生 因此对以下几件事感到困惑 Android 库的定义是什么 我使用 Mono 模板创建 Android 库 创建 Mono for Android
  • 什么时候需要延迟加载?

    我懒惰地加载我的所有成员 我这样做已经有一段时间了 并且只是认为延迟加载从表面上看是一件好事 假设我们有 public class SomeClass public int anInt public SomeReferenceType me
  • 如何包含 CEFSharp 所需的 VC++ 可再发行文件

    使用 CEFSharp 浏览器构建应用程序在我的计算机上运行良好 但在服务器上崩溃并出现以下错误 System IO FileLoadException 无法加载 CefSharp Core dll 导入的过程 我在互联网上看到过这个问题