SuperBerry的VC++ redistribution package安装解决了我的问题。我会从我的幼稚角度提供一些故障排除见解。
错误信息非常清楚,要么是缺少CefSharp.Core.dll组件,要么是它的某个依赖项。所以问题归结为如何找出缺失的内容?
首先,您是否有CefSharp.Core.dll?在Solution Explorer中查看出现此问题的项目的引用。您应该能够找到对CefSharp.Core的引用。如果找不到,则缺少该组件。如果有一个,则问题在于缺少其所需的依赖项。当您单击CefSharp.Core引用时,在详细信息中,您将获得其所在位置的完整路径。在我的情况下,它位于“C:\Users\tom\source\repos\MyProject\src\packages\CefSharp.Common.41.0.0\CefSharp\x86\CefSharp.Core.dll”。
您需要获取CefSharp.Core依赖项列表,以确定缺少的依赖项。Dumpbin.exe是一个命令行工具,可用于获取依赖项列表。为了使用dumpbin,您需要确保它可以在系统环境变量的路径中找到。我在VC工具bin目录的路径上找到了它。在我的情况下,我在以下位置找到了它:'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\bin\Hostx64\x64'。打开命令提示符终端并导航到包含CefSharp.Core.dll的文件夹,然后输入以下内容:
>dumpbin /dependents CefSharp.Core.dll
我得到的结果是:
Dump of file CefSharp.Core.dll
File Type: DLL
Image has the following dependencies:
KERNEL32.dll
MSVCP110.dll
MSVCR110.dll
libcef.dll
USER32.dll
mscoree.dll
多年没有使用Microsoft Visual Studio,我必须尝试找出那些依赖项应该放在哪里,以便它们可以被解决。 我只需进行互联网搜索,例如“Kernel32.dll位于何处”,然后针对每个dll执行此操作,直到找到缺失的dll。 在我的情况下,我找不到MSVCR110.dll,所以我强烈怀疑这是我的问题。 然后我在互联网上搜索“MSVCR110.dll丢失”,发现它是vc ++重新分配的一部分。(SuperBerry,在您的第一个观点上是正确的)。 我还发现它可以从以下链接下载:'
https://www.microsoft.com/en-us/download/details.aspx?id=30679'。 我下载了x86和x64版本(尽管我只需要x86版本用于此项目)。 它们是可执行文件,运行时会安装它们。 安装后,我在'C:\ Windows \ SysWOW64'和'C:/ Windows / System32'中找到了它们的副本。 这个问题就解决了。
我从这个过程中学到的是,很难知道你是否安装了正确的VC++分发包。我以为当启用VC++功能时,Visual Studio安装后会自动安装它。我使用的是Visual Studio Community 2019版本。我正在处理的项目是我从GitHub源代码克隆的。我仍然对VC++分发版本控制感到困惑。例如,我是否可以安装一些更新的版本并且它能够正常工作(即向后兼容)?
VCRedist
,那么您不需要与Universal CRT
相关的任何内容。请阅读 https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/ 中的Distributing Software that uses the Universal CRT
部分。 - amaitland