【发布时间】:2018-04-07 23:24:29
【问题描述】:
我有一个使用 CEFSharp 作为网络浏览器的简单应用程序。
该应用程序在开发 PC 上运行良好,没有任何问题,据报道,其他几台 PC 也运行良好。
但是,有 1-2 个用户使用 Windows 10(64 位)计算机,程序在启动时崩溃,甚至在显示表单之前就没有错误消息。在其他 Windows 10 机器上它运行得很好。
我尝试在网上阅读很多内容并尝试了很多方法来解决此问题,但我现在一无所知。
用户向我提供了崩溃时的 Windows 事件日志屏幕截图:
看起来是在创建表单之前在构造函数中找不到文件异常? (对这个.ctor不太熟悉)
加载的唯一文件是 CEF Chromium 浏览器,所有必需的文件都随我的安装程序提供,所以我不知道究竟是什么造成了这个问题。
我只使用此代码: (这是CefSharp项目的默认示例代码)
Private WithEvents browser As ChromiumWebBrowser
Public Sub New()
InitializeComponent()
Dim settings As New CefSettings()
CefSharp.Cef.Initialize(settings)
browser = New ChromiumWebBrowser("http://www.google.com") With {
.Dock = DockStyle.Fill
}
panBrowser.Controls.Add(browser)
End Sub
我已经尝试向构造函数添加异常处理(基于另一个论坛中的一些建议)以触发带有错误的消息框,但该错误事件没有触发。
为什么它只发生在这台电脑上而不发生在大多数其他电脑上? 为什么错误日志显示 Framework 4.03 为版本?可以吗? (我的 CefSharp 需要并为 4.61 编译,PC 安装了 4.7)
还有什么我可以检查或您会推荐的吗?不幸的是,我无法对这台有问题的 PC 进行物理访问,所以我只能远程处理。
感谢您的帮助。
【问题讨论】:
-
它上面的错误是什么(应用程序错误)?也可能和杀毒有关,禁用杀毒后应用是否正常启动?
-
很可能是缺少 DLL。您可以尝试将事件处理程序添加到全局
UnhandledExceptionevent。这样您就可以捕获所有未处理的异常并获取您需要的信息。见:How to: Handle Application Events (Visual Basic) -
确保 PC 已安装所有正确的 .Net Frameworks。同样在 Visual Studio 中,在您的 MSI 或安装程序文件上,确保所有检测到的依赖项都具有以下参数设置“exclude=false”和“vital=true”。然后在您的项目中,下拉参考树并确保所有 dll 都是“复制本地 = true”。还要确保不工作的 PC 具有正确的架构(32/64 位)。有时 DLL 不会被复制到安装程序中。只是一个想法,没有保证。
-
@RonBeyer :上面的错误是应用程序崩溃时记录的更通用的错误。对于 .NET 开发人员而言,它包含的有用信息不如它下面的错误(他当前正在查看的错误)。
标签: .net vb.net constructor cefsharp