Win7 + CefSharp 49.0 运行时报错 : “未能加载文件或程序集“cefsharp.core.dll”或它的某一个依赖项。找不到指定的模块。“
问题
这个问题在多个平台都有答案,但是我分别进行了尝试,却没有与我的问题完全对症的,但是每个答案又都有一定的适用性,这些答案在不同的开发的环境中、不同的系统版本、不同的编译环境下,依赖的文件也不同。以下记录我遇到的又一种特定场景下的大约 30 种左右 的尝试:
开发环境
版本 Windows 11 家庭中文版
版本号 24H2
操作系统版本 26100.4946
体验 Windows 功能体验包 1000.26100.197.0
系统类型 64 位操作系统,
Microsoft Visual Studio Professional 2022 (2) (64 位) 版本 17.11.4
.Net Framework 4.5.0 + WPF + CefSharp 49.0.1
运行环境
Windows 7 专业版
Service Pack 1
Intel(R) Core(TM)i3-4170 CPU @3.70GHz 3.70GHz
8.00 GB
64 位操作系统
Windows 已激活
解决思路

根据已经查询到的资料,查看CefSharp.Core.dll的依赖项,基本确定了解决思路就是缺少文件msvcp120.dll、msvcr120.dll ,需要安装vcredist_x86.exe 或者 vcredist_x64.exe ,那么具体需要安装哪个版本呢 ? 安装之后一定是可用的吗 如果不按 规定安装,一定是不可用的吗?
我使用的 CefSharp 49.0 , 它依赖于 Microsoft Visual C++ Redistributable 2013
我的运行系统是64位的 因此我安装了64位版本 : https://aka.ms/highdpimfc2013x64chs

多种组合尝试
后续图片中的表格,里面的一些列的说明:
“配置”和“目标平台”这两列对应VS的这里:


:这一列表示我手动拷贝了2个文件到软件目录下;
“结果”列“成功”表示可以成功加载浏览器和显示内容,“失败”表示弹出了标题中的依赖错误;
安装 vcerdist_x64
当在运行环境中,安装 vcerdist_x64.exe 后,测试情况如下:

安装 vcerdist_x86
当在运行环境中,卸载 vcerdist_x64.exe ,然后安装 vcerdist_x86.exe 后,测试情况如下:

什么都不安装
当把以上安装的 vcredist_x86和 vcredist_x64 都卸载后,测试情况如下:

以上所有的测试,都基于 同一个解决方案中仅有1个项目的情况下,也就是解决方案的配置管理中 与 项目属性 中看到的 “配置” 和 “目标平台” 绝对是一致的。
解决方案与项目配置不同
但是我也验证了其他情况:
当解决方案中有多个项目的情况下,由于CefSharp49.0仅仅支持单一的 “目标平台”,仅能设置x86或者x64, 因此多个项目的情况下,当其他项目或者整个解决方案的 目标平台 设置为 Any CPU时,这个CefSharp项目就只能排除到这个解决方案之外进行维护,
也就是说:解决方案为 Release + Any CPU , 然后 Cef Sharp 项目 Release + x86, 此时无论进行以上的任何一个测试,不管是通过dll引用,或者非引用的反射方式调用,在 Win7 SP1,都失败。
以上的所有测试,基于开发环境是相同的, 都是 VS2022/Win10,
没有搞懂的操作
但是奇怪的是,当在另外一个电脑的开发环境下,VS2019/Win10, 解决方案为 Release + Any CPU, 浏览器模块是 Release + x86, 调用方式是模块的反射加载,这个条件下,通过两种方式的任意一种 在Win7 SP1 都是可行的:
1,安装 vcredist_x86
2,把 64位的 msvcp120.dll、msvcr120.dll 2个文件直接放到目录下
好像懂了好像没懂
我实在没有摸清楚全部的规律,但是问题的解决思路基本是确定的:
1,安装正确版本的 vcredist_x86 或者 vcredist_x64
2,如果1不行,就直接把 x64 或者 x86 的 msvcp120.dll、msvcr120.dll 直接放到软件目录下
3,如果1,2还不行,检查一下项目的 “配置” 和 “目标平台” ,尝试调整为Release , 尝试切换目标平台为 x86 或 x64
以上的所有问题,都是针对 Win7 SP1 进行的测试。
因为在Win10系统兼容性比较好,没有什么奇怪的错误,因为没有针对性验证。

通过 30 种左右的组合测试,发现在 CefSharp + Win7 SP1 环境下的一些使用规律。不同的版本、不同的开发环境和配置,都有不同的表现。
浙公网安备 33010602011771号