开发环境:Windows 2003 Server SP1+Visual Studio 2003 .net企业结构设计版
Microsoft Visio 2003 Professional
安装环境:Windows 2000 Professional
Microsoft .net Framwork 1.1
Microsoft Visio 2003 Professional
可是我安装运行后,总是弹出一个消息框,然后就终止了,无法运行。
提示框如下:
标题:MyApp.exe-公共语言运行库调试服务
内容:应用程序生成了一个无法处理的异常
进程ID=0x314(788),线程ID=0x150(336)
单击“确定”终止程序
单击“取消”调试该应用程序
我在Chris Sells & Justin Gehtland的<<Windows Forms Programming in Visual Basic .NET>>这本书里看到:“...这样的对话框意味着程序员没有对异常情况做出妥善的处理,这很容易引起最终用户的不满。...”仅此而己。然后它又给了一个方法来让WinForm本身来捕捉这个弹出的异常。如下:
Imports System.Threading
Module Initial
Public Sub App_ThreadException(ByVal sender As Object, ByVal e As ThreadExceptionEventArgs)
System.Diagnostics.Debug.WriteLine("App_ThreadException")
Dim msg As String = "A problem has occured in this application:" & vbCrLf & vbTab & e.Exception.Message & vbCrLf & "Would you like to continue the application so that " & vbCrLf & "you can save your work?"
Dim res As DialogResult
res = MessageBox.Show(msg, "Uncepected Error", MessageBoxButtons.YesNo)
If res = DialogResult.Yes Then Exit Sub
Application.Exit()
End Sub
Public Sub main()
AddHandler Application.ThreadException, AddressOf App_ThreadException
Application.Run(New frmMain)
End Sub
End Module
我现在感到很困惑,也很无助。请各位板油出谋划策啊。分奉上~
9 个解决方案
#1
不知道.如果在开发环境下能够正常运行,你可以试试把安装环境的框架重新安装一次
#2
你那本书上的说得方法是通过Main函数启动程序,然后捕获整个系统没有handle到的异常,通过App_ThreadException函数进行相应的处理。这样的作法只是不让系统出现异常的时候显示那个难看的.net错误信息。如果可能的话,在目标机器上面调试程序,找到异常的地方。
#3
把windows 2000下的.net framwork再重新安装一次?
#4
可能有方法不支持
#5
我在目标机器上肯定不能装VS .net吧?
现在我有一个SharpDevelop的第三方.net环境。很小。应该可以一试。
我主要是纳闷,为什么在我的开发环境下运行得好好的,发布到目标环境下就不行了呢。
现在我有一个SharpDevelop的第三方.net环境。很小。应该可以一试。
我主要是纳闷,为什么在我的开发环境下运行得好好的,发布到目标环境下就不行了呢。
#6
我现也是这个现象.不知道怎么起在.
我到是从Main启动的
在我机子上运行好好的. 目标机子都不行. donetfarmework mdac_type 装了N次
只要是有vs.net环境的都可以运行,没有的就不行.
请高手指点一下啊 急!!!
我到是从Main启动的
在我机子上运行好好的. 目标机子都不行. donetfarmework mdac_type 装了N次
只要是有vs.net环境的都可以运行,没有的就不行.
请高手指点一下啊 急!!!
#7
晕啊。
同样的问题又出现了。
现在是连.ThreadException也不起作用了。
同样的问题又出现了。
现在是连.ThreadException也不起作用了。
#8
看起来是你的安装程序没有打包到一些东西
如果采用非.NET的第三方控件很容易出现这种问题
仔细找找是不是有些关联的东西没有一起打包进来吧,或者你的第三方控件需要写点什么东西到注册表才能正常运行
如果采用非.NET的第三方控件很容易出现这种问题
仔细找找是不是有些关联的东西没有一起打包进来吧,或者你的第三方控件需要写点什么东西到注册表才能正常运行
#9
问题找出来了,一方面是我用的DevExpress Component For WinForm .NET的一个DLL没有打包进去,二是因为我的数据库connection string用的是静态的,程序初始化时找不到数据库,就会弹出一个错误来。
解决方法:从程序的入口开始,分段用try-catch试验,逐段排查。
反正我是用这样的方法,还好我的代码基本上是分块。
教训是:要做好程序的异常处理。
谢谢大家~请收分~
解决方法:从程序的入口开始,分段用try-catch试验,逐段排查。
反正我是用这样的方法,还好我的代码基本上是分块。
教训是:要做好程序的异常处理。
谢谢大家~请收分~
#1
不知道.如果在开发环境下能够正常运行,你可以试试把安装环境的框架重新安装一次
#2
你那本书上的说得方法是通过Main函数启动程序,然后捕获整个系统没有handle到的异常,通过App_ThreadException函数进行相应的处理。这样的作法只是不让系统出现异常的时候显示那个难看的.net错误信息。如果可能的话,在目标机器上面调试程序,找到异常的地方。
#3
把windows 2000下的.net framwork再重新安装一次?
#4
可能有方法不支持
#5
我在目标机器上肯定不能装VS .net吧?
现在我有一个SharpDevelop的第三方.net环境。很小。应该可以一试。
我主要是纳闷,为什么在我的开发环境下运行得好好的,发布到目标环境下就不行了呢。
现在我有一个SharpDevelop的第三方.net环境。很小。应该可以一试。
我主要是纳闷,为什么在我的开发环境下运行得好好的,发布到目标环境下就不行了呢。
#6
我现也是这个现象.不知道怎么起在.
我到是从Main启动的
在我机子上运行好好的. 目标机子都不行. donetfarmework mdac_type 装了N次
只要是有vs.net环境的都可以运行,没有的就不行.
请高手指点一下啊 急!!!
我到是从Main启动的
在我机子上运行好好的. 目标机子都不行. donetfarmework mdac_type 装了N次
只要是有vs.net环境的都可以运行,没有的就不行.
请高手指点一下啊 急!!!
#7
晕啊。
同样的问题又出现了。
现在是连.ThreadException也不起作用了。
同样的问题又出现了。
现在是连.ThreadException也不起作用了。
#8
看起来是你的安装程序没有打包到一些东西
如果采用非.NET的第三方控件很容易出现这种问题
仔细找找是不是有些关联的东西没有一起打包进来吧,或者你的第三方控件需要写点什么东西到注册表才能正常运行
如果采用非.NET的第三方控件很容易出现这种问题
仔细找找是不是有些关联的东西没有一起打包进来吧,或者你的第三方控件需要写点什么东西到注册表才能正常运行
#9
问题找出来了,一方面是我用的DevExpress Component For WinForm .NET的一个DLL没有打包进去,二是因为我的数据库connection string用的是静态的,程序初始化时找不到数据库,就会弹出一个错误来。
解决方法:从程序的入口开始,分段用try-catch试验,逐段排查。
反正我是用这样的方法,还好我的代码基本上是分块。
教训是:要做好程序的异常处理。
谢谢大家~请收分~
解决方法:从程序的入口开始,分段用try-catch试验,逐段排查。
反正我是用这样的方法,还好我的代码基本上是分块。
教训是:要做好程序的异常处理。
谢谢大家~请收分~