嵌入了 CEF 浏览器的 C# 桌面应用程序不是 运行 在客户的 PC 上,而是在开发 PC 上运行

C# Desktop Application with CEF browser embedded NOT RUNNING on Client's PC, but runs on development PC's

我在 VS2013 上开发了一个 C# 桌面应用程序,其中包含 CEF(Chrome 嵌入式框架)。该应用程序是在 .NetFramework 4.5.2 上开发的,目标平台设置为 x64(必须是 x64,否则 CEF 不起作用)

应用程序 运行s 在开发者 PC 上,但是当我在客户端 PC 上安装它(使用安装程序)并通过单击安装的 .exe 简单地 运行 它时,鼠标指针加载几秒钟,然后什么也没有发生。它也没有出现在任务管理器中。我已经通过安装另一个在相同环境和配置下开发但没有 CEF 的 C# 桌面应用程序对其进行了测试,它在所有客户端的 PC 上运行良好。CEF 有任何问题吗?

以下是开发者 PC 和客户端 PC 的规格。

开发人员 PC:[应用程序 运行] Windows 10 OS = x64 位 Visual Studio 2013 年使用 .NETFramework 4.5.2 Visual C++ 2012 可再发行组件包 CEF .dll 文件包含并放置在调试文件夹中

另一台 PC 2:[应用程序 运行] Windows 7 OS = x64 位 Visual Studio 2013 年使用 .NETFramework 4.5.2 Visual C++ 2012 可再发行组件包 CEF .dll 文件包含并放置在调试文件夹中

客户端 PC 1 [应用程序不是 运行] Windows 8.1 OS = x64 位 Visual C++ 2012 可再发行组件包 CEF .dll 文件包含并放置在调试文件夹中

客户端 PC 2 [应用程序不是 运行] Windows 8.1 OS = x64 位 Visual C++ 2012 可再发行组件包 CEF .dll 文件包含并放置在调试文件夹中

如有任何帮助,我们将不胜感激。非常感谢。

windows 中内置了一个名为 sxstrace.exe 的工具,可以帮助确定缺少的内容。

1) 运行 类似于:

sxstrace trace -logfile:mylog

2) 尝试启动应用程序

3) 停止跟踪(在cmd中按任意键window)

4) 像这样解析日志文件:

sxstrace parse -logfile:mylog -outfile:mylog.txt

5) 查看输出文件是否有错误

编辑:在您的情况下,很可能丢失了一些 CEF 文件。来自他们的文档:

The following files, in addition to the usual .NET project files, should be present in the bin directory. They should live side-by-side in the same directory as the CefSharp.Wpf.Example.exe file, except for en-US.pak which is in a locales subdirectory:

cef.pak devtools_resources.pak icudt.dat libcef.dll /locales/en-US.pak

希望您发布的不是调试版应用程序。这可能解释了对正在安装的 MS VS 的依赖性。根据我的 C++ 经验,调试构建有时需要一些只能在 Visual Studio 安装中找到的 DLL。

另一个调试想法:下载示例应用程序并将可执行文件 (cefclient.exe) 放入您的项目安装中。获取与您的 CEF 版本相对应的版本很重要。尝试 运行 简单的应用程序。如果它有效,那么所需的二进制依赖项和资产就在那里,问题出在其他地方。