简单的CefSharp应用程序在运行时缺少文件。

3
这可能是一个非常简单的问题。 我将CefSharp MinimalExample.WinForms示例项目复制到一个新目录并重命名为WinProxy。 它可以构建成功,但运行时出现了错误; 出现了类型为“System.IO.FileNotFoundException”的未处理异常, 附加信息:无法加载文件或程序集“CefSharp.Core.dll”或其某个依赖项。找不到指定的模块。 与示例目录进行比较,我缺少此处列出的许多文件https://github.com/cefsharp/CefSharp/wiki/Output-files-description-table-(Redistribution)。 我确实有CefSharp.Core.dll、CefSharp.WinForms.dll和CefSharp.dll,这些都在示例项目中被引用。 我该如何获取其他文件?我尝试将它们复制过来并重新构建,但是出现了未处理异常,类型为“System.IO.FileLoadException”,附加信息:无法加载'CefSharp.Core.dll'导入的过程。 谢谢。

在您进行修改之前,是否已运行过 CefSharp.MinimalExample.WinFormsNuget 包在构建时会复制 unmanaged 依赖项。尝试删除 CefSharp.WinForms 包并重新安装它。 - amaitland
检查您的软件包来源,确保已选中Nuget.org. - amaitland
在VS工具->选项->NuGet包管理器中勾选了https://www.myget.org/F/cefsharp/和https://www.nuget.org/api/v2/。 - CarbonMan
如果取消选中myget源,事情应该就能正常运行了。我正在发布下一个版本45.0.0,所以你可能被困在一个过渡期,此时包还没有上传到Nuget.org。另外,如果您不知道的话,CefSharp需要VC++才能运行,请参阅https://github.com/cefsharp/CefSharp#version-branches获取更多详细信息。 - amaitland
谢谢你的帮助。我似乎在NuGet上找不到cef.redist.x86,它是Cef.Sharp.Common的一个依赖项,虽然现在我只需要x64也很满足了。 - CarbonMan
显示剩余4条评论
3个回答

6

安装:

  • Visual Studio 2013的Visual C++ Redistributable Packages

检查:

  • CefSharp版本49.0.1需要框架4.5.1。
  • CefSharp版本51.0.0或更高版本需要框架4.5.2或更高版本。

编译解决方案:

  • x86或x64

1
我缺少了可再发行软件包。谢谢! - SaiyanGirl

1

请检查您是否已包含以下所有依赖项? 在此输入图片描述


如果一切安装正确,您将会找到上述提到的所有dll文件。 - null1941
请问您能否编辑答案以反映这些dll来自哪里,例如(packages.config或其他需要安装的系统依赖项)? - Amen Jlili

0

在与@amaitland的讨论后,我最终卸载了所有NuGet包,并通过Package Manager控制台安装了每个包;

Install-Package cef.redist.x86
Install-Package cef.redist.x64
Install-Package CefSharp.Common
Install-Package CefSharp.WinForms

然后它就运行正常了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接