【问题标题】:VB.NET application crashes before showing a form (only on some PC's)VB.NET 应用程序在显示表单之前崩溃(仅在某些 PC 上)
【发布时间】:2018-04-07 23:24:29
【问题描述】:

我有一个使用 CEFSharp 作为网络浏览器的简单应用程序。

该应用程序在开发 PC 上运行良好,没有任何问题,据报道,其他几台 PC 也运行良好。

但是,有 1-2 个用户使用 Windows 10(64 位)计算机,程序在启动时崩溃,甚至在显示表单之前就没有错误消息。在其他 Windows 10 机器上它运行得很好。

我尝试在网上阅读很多内容并尝试了很多方法来解决此问题,但我现在一无所知。

用户向我提供了崩溃时的 Windows 事件日志屏幕截图:

Errorlog Screenshot

看起来是在创建表单之前在构造函数中找不到文件异常? (对这个.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。您可以尝试将事件处理程序添加到全局 UnhandledException event。这样您就可以捕获所有未处理的异常并获取您需要的信息。见: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


【解决方案1】:

OP 编辑​​的回答:

缺少 Microsoft Visual C++ 2013 x32(CefSharp 需要)是问题所在。感谢所有将我指向此解决方案的建议。

【讨论】:

    【解决方案2】:

    检查你使用的.net版本是否安装。?如果不是,则根据您的应用程序规范安装相应的.net framework...

    【讨论】:

      猜你喜欢
      • 2022-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-26
      相关资源
      最近更新 更多