[紧急求助]VB.NET应用程序发布后安装无法使用。急,在线等!

时间:2021-02-03 13:57:07
小弟用visual basic .net和microsoft visio 2003 professional二次开发控件做了一个CAD程序,完成之后进行发布,生成Release包。

开发环境: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环境。很小。应该可以一试。

我主要是纳闷,为什么在我的开发环境下运行得好好的,发布到目标环境下就不行了呢。

#6


我现也是这个现象.不知道怎么起在.
  我到是从Main启动的
在我机子上运行好好的. 目标机子都不行. donetfarmework  mdac_type 装了N次
只要是有vs.net环境的都可以运行,没有的就不行.

请高手指点一下啊 急!!!

#7


晕啊。

同样的问题又出现了。

现在是连.ThreadException也不起作用了。

#8


看起来是你的安装程序没有打包到一些东西

如果采用非.NET的第三方控件很容易出现这种问题

仔细找找是不是有些关联的东西没有一起打包进来吧,或者你的第三方控件需要写点什么东西到注册表才能正常运行

#9


问题找出来了,一方面是我用的DevExpress Component For WinForm .NET的一个DLL没有打包进去,二是因为我的数据库connection string用的是静态的,程序初始化时找不到数据库,就会弹出一个错误来。

解决方法:从程序的入口开始,分段用try-catch试验,逐段排查。

反正我是用这样的方法,还好我的代码基本上是分块。

教训是:要做好程序的异常处理。

谢谢大家~请收分~

#1


不知道.如果在开发环境下能够正常运行,你可以试试把安装环境的框架重新安装一次

#2


你那本书上的说得方法是通过Main函数启动程序,然后捕获整个系统没有handle到的异常,通过App_ThreadException函数进行相应的处理。这样的作法只是不让系统出现异常的时候显示那个难看的.net错误信息。如果可能的话,在目标机器上面调试程序,找到异常的地方。

#3


把windows 2000下的.net framwork再重新安装一次?

#4


可能有方法不支持

#5


我在目标机器上肯定不能装VS .net吧?

现在我有一个SharpDevelop的第三方.net环境。很小。应该可以一试。

我主要是纳闷,为什么在我的开发环境下运行得好好的,发布到目标环境下就不行了呢。

#6


我现也是这个现象.不知道怎么起在.
  我到是从Main启动的
在我机子上运行好好的. 目标机子都不行. donetfarmework  mdac_type 装了N次
只要是有vs.net环境的都可以运行,没有的就不行.

请高手指点一下啊 急!!!

#7


晕啊。

同样的问题又出现了。

现在是连.ThreadException也不起作用了。

#8


看起来是你的安装程序没有打包到一些东西

如果采用非.NET的第三方控件很容易出现这种问题

仔细找找是不是有些关联的东西没有一起打包进来吧,或者你的第三方控件需要写点什么东西到注册表才能正常运行

#9


问题找出来了,一方面是我用的DevExpress Component For WinForm .NET的一个DLL没有打包进去,二是因为我的数据库connection string用的是静态的,程序初始化时找不到数据库,就会弹出一个错误来。

解决方法:从程序的入口开始,分段用try-catch试验,逐段排查。

反正我是用这样的方法,还好我的代码基本上是分块。

教训是:要做好程序的异常处理。

谢谢大家~请收分~