【发布时间】:2013-07-29 12:05:40
【问题描述】:
我已将(文本:- ctrl-c ctrl-v)我以前的一个程序中的一个类复制到项目中,该程序运行时没有故障。非常简单地从文本文件中提取数据。
在我的机器上,它安装了 Visual Studio 2010,就像一个魅力。在别人的机器上,它在启动时因方向错误而崩溃。
EventType : clr20r3 P1 : total_extractor.exe P2 : 1.0.0.1
P3 : 51f64e90 P4 : total_extractor P5 : 1.0.0.1 P6 : 51f64e90
P7 : 4a P8 : 22 P9 : **system.invalidoperationexception**
我在加载模块中的唯一信息如下:
Option Explicit On
Public Class frm_Main
Private Sub btn_Extract_Click(sender As System.Object, e As System.EventArgs) Handles btn_Extract.Click
RunTE()
End Sub
Private Sub frm_Main_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.cbx_Defaults.Items.Add("String Loads | *.det")
Me.cbx_Defaults.Items.Add("RF | *.det")
Me.cbx_Defaults.Items.Add("OLOADS | *.f06")
Me.cbx_Defaults.Items.Add("Properties | *.f06")
End Sub
Private Sub cbx_Defaults_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cbx_Defaults.SelectedIndexChanged
Dim combostr As String
combostr = cbx_Defaults.Text
If combostr = "RF | *.det" Then
txt_Begin.Text = "TABLE 6.2: ACD table"
txt_End.Text = "TABLE 6.3:"
txt_Skip.Text = "2"
txt_Filter.Text = "*.det"
ElseIf combostr = "String Loads | *.det" Then
txt_Begin.Text = "TABLE 2.1.1:"
txt_End.Text = "TABLE 2.2.1"
txt_Skip.Text = "2"
txt_Filter.Text = "*.det"
ElseIf combostr = "OLOADS | *.f06" Then
txt_Begin.Text = "OLOAD RESULTANT"
txt_End.Text = "TOTALS"
txt_Skip.Text = "2"
txt_Filter.Text = "*.f06"
ElseIf combostr = "Properties | *.f06" Then
txt_Begin.Text = "LOAD FACTOR 1.0"
txt_End.Text = "*** USER"
txt_Skip.Text = "5"
txt_Filter.Text = "*.f06"
End If
End Sub
End Class
代码使用My.Computer.FileSystem.OpenTextFileReader,仅此而已。
我从谷歌得到的信息,通常是关于一些基于数据的选项。这只是操纵文本文档?
任何想法,关于如何捕捉事件?还是我设置的?
【问题讨论】:
-
您应该发布 full 异常堆栈跟踪 - 不是来自事件日志,而是来自代码中记录异常的任何内容。 (如果没有记录异常,这本身就是一个问题。)
-
@Jon 我在代码中没有事件日志。忙着阅读如何做到这一点。对我来说,问题是 a.) Vb 的新手,b.) 这种崩溃发生在程序执行之前?那么我应该在哪里处理异常呢?
-
我看不出它是如何“在程序执行之前”发生的。程序必须正在执行才能发生异常,不是吗?它可能在任何 GUI 出现之前就失败,但这不是一回事。一种简单的方法是更改您的项目类型,使其成为控制台应用程序 - 但仍然使用 GUI,当然,您不需要更改代码。然后,当您从控制台运行它时,您应该会看到堆栈跟踪。
-
是的,好点......它可以执行,但在启动时崩溃。控制台的东西根本不运行。仍然需要使用控制台来获得这个想法,目前,应用程序类型:-> 控制台应用程序;由于类中的表单引用而阻止代码的构建?每次调试都需要时间,因为它可以在我的机器上运行,但不能在非 VS2010.net 机器上运行。
-
“阻止代码的构建”恐怕并没有给我太多信息。当它是一个 WinForms 应用程序时,VB 可能会自动为你做一些应用程序启动工作,但将其转换为控制台应用程序应该是可行的。
标签: vb.net invalidoperationexception