Поднял старый проект VB.NET, первоначально написанный для версии 1.1 платформы .NET. Я запускаю Vista с .NET 3.5. Я очистил всю исходную ошибку, и проект будет построен; он просто не бежит.IndexOutOfRangeException в VB.NET
Насколько я могу судить, он пытается запустить «LoginForm», но установка точек останова не работает, потому что ошибка возникает до того, как точки останова будут достигнуты независимо от того, где они находятся в файле.
Действительно не может понять, что делать! Любая помощь оценивается.
StackTrace:
System.IndexOutOfRangeException was unhandled Message="Index was outside the bounds of the array." Source="FirstLine" StackTrace: at FirstLine.LoginForm.main() at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() InnerException:
EDIT: Жутко извиняюсь, не оценил код будет много пользы, поскольку этот вопрос более, что я не могу добраться до него. Однако, вот основная функция:
Shared Sub main() Dim p As Process() = Process.GetProcessesByName("FirstLine") If p.Length = 1 Then 'START COPYMINDER 'Dim expirydate As Date = CDate("01/01/1970") 'Dim expiry As Integer 'Try ' GetCopyMinderExpiryDate(expiry) ' If Not expiry = 0 And Not expiry = 1 Then ' expirydate = expirydate.AddSeconds(expiry) ' Dim diff As Integer = DateDiff(DateInterval.Day, Date.Now, expirydate) ' If diff >= 0 And diff 0 Then ' DisplayError((ret_code)) ' End 'End If 'Dim did As String 'GetCopyMinderDeveloperID(did) 'If did "IT" Then ' MessageBox.Show("Invalid Developer ID " & did & ". Firstline will now shutdown", "Firstline", MessageBoxButtons.OK, MessageBoxIcon.Error) ' End 'End If 'END COPYMINDER Dim lf As New LoginForm If LoginSettings.setting("loginShowErrorOnLine") = "TRUE" Then lf.ShowDialog() Else Try lf.ShowDialog() Catch ex As Exception MsgBox(ex.Message) Config.UnlockByUser(Config.currentUser.username) Config.currentUser.UserLoggedOff() End Try End If Else Dim prc As Process = p(0) SwitchToThisWindow(prc.MainWindowHandle, True) End If End Sub
Спасибо за ваши ответы. Отрадно видеть такое полезное сообщество!
Опубликовать код. Что входит в LoginForm.main()? Тем временем это может помочь: http://stackoverflow.com/questions/964566/vs-2008-addon-to-temporarily-disable-remove-all-catch-block/964579#964579 –
Некоторые исходные коды FirstLine .LoginForm.main(), вероятно, будет полезным :-). – bang