启动我部署的应用程序“已停止工作”错误。我该如何调试?

时间:2010-04-05 23:30:30

标签: .net vb.net debugging deployment crash

我部署了一个VB.Net应用程序并运行它,我得到' AppName 已停止工作“”Windows正在检查问题的解决方案“以及Windows 7下的取消按钮。 XP我只是选择将错误报告发送给微软。

没有明显的方法可以挂钩调试器。我没有得到任何异常数据。我已经把msgbox放在我的代码的最开头,它们没有被命中,因此在我的任何代码执行之前它都失败了。我检查了所有我能想到的依赖项。

我在VS2008 Windows 7上开发了应用程序并部署到Windows 7和WinXP。

我需要一些建议 - 如何调试?

2 个答案:

答案 0 :(得分:1)

调试此问题的最简单方法是使用Windbg,如果您知道并且有Tess博客可以解决此问题。

在Windows 7上,调试要容易得多,因为使用ETW的堆栈遍历功能。这里是托管代码中的how you can use

答案 1 :(得分:0)

好的,这就是我做的。

我在Project Properties的Application选项卡中禁用了Enable Application Framework。使用它可以使事情变得更容易,但更不透明。我再也不会用那根拐杖了!

通过使用您自己的Sub Main,您实际上可以看到并响应表单加载时发生的错误:

Public MainForm As frmSettings

Public Sub Main()

    Try
        MainForm = New frmSettings
    Catch ex As Exception
        Log.WriteToProgressLog("Error new form: " & ex.Message)
    End Try

    Try
        MainForm.Show()
    Catch ex As Exception
        Log.WriteToProgressLog("Error Showing Form: " & ex.Message)
    End Try

    Try
        Application.Run(MainForm)
    Catch ex As Exception
        Log.WriteToProgressLog("Error Running App: " & ex.Message)
    End Try

End Sub

你可以使用它来全局查看表单。是的,我知道,纯粹主义者会抱怨,但我的理念是:我对零容忍政策零容忍。我甚至已知使用goto如果它使代码更有效和更容易阅读。安美居...

更改此内容后,我在实例化表单时遇到错误。原来的Microsoft.VisualBasic.PowerPacks.Vs.dll组件(我的表单上有一个单行控件,显然需要它)不是.Net 3.5发行版的一部分,所以你必须将它包含在你的应用程序中。那是怎么回事?并且默认情况下它未设置为复制本地。 WT ...?我错误地认为我只需要包含外部依赖项。非常适合.Net XCopy安装!

  • 布拉德