Я очень благодарен вам за помощь. Мое приложение выглядит следующим образом,Исключение «System.AccessViolationException» возникает при открытии «OpenFileDialog» в VB.Net (VS 2012)
Операционная система: Windows 7 64 Bit OS
Visual Studio: VS 2012
Применение: VB.Net работает на рамках .Net 4
В моем приложении, у меня есть кнопка который вызывает мой пользовательский метод «Select_Batch_File()». После нажатия этой кнопки предполагается открыть «OpenFileDialog» для выбора определенного файла. Однако это отлично работает на моей машине с вышеприведенной конфигурацией; на некоторых из моих коллег (с той же конфигурацией выше) это не работает и выходит из строя без каких-либо исключений. Я собрал дамп нить из машины моего коллеги, который, как следует,
======================
Имя журнала: Application
источника: .NET время выполнение
Дата: 3/18/2013 1:54:19 PM
Код событие: 1026
Категория задачи: Отсутствует
Уровень: Ошибка
Ключевые слова: Классический
Пользователь: N/A
Описание:
Применение: Визуальный AEEMS.exe
Framework Версия: v4.0.30319
Описание: Процесс был прерван из-за необработанного исключения.
Exception Информация: System.AccessViolationException
Stack:
на System.Windows.Forms.FileDialogNative + IFileDialog.Show (IntPtr)
в System.Windows.Forms.FileDialog.RunDialogVista (IntPtr)
на System.Windows.Forms.FileDialog.RunDialog (IntPtr)
на System.Windows.Forms.CommonDialog .ShowDialog (System.Windows.Forms.IWin32Window)
===============
Я последовал решение от MSDN форум, где пользователи попросили снять флажок в визуальная студия> Инструменты> Параметры> Отладка> «Подавить оптимизацию JIT при загрузке модуля (только управляемый)», но не повезло.
Вот мой код
Sub Select_Batch_File()
Try
Dim OpenFileDialog As New OpenFileDialog
OpenFileDialog.AutoUpgradeEnabled = False
Full_Path = "" : file_name = ""
OpenFileDialog.Multiselect = False
Try
<<Here I am getting exception>>
If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
EMS_Dir = OpenFileDialog.FileName 'get the path
EMS_Dir = StrReverse(EMS_Dir) 'reverse the string
EMS_Dir = Mid(EMS_Dir, InStr(EMS_Dir, "\"), Len(EMS_Dir)) 'extract from the first slash
EMS_Dir = StrReverse(EMS_Dir) 'reverse it again
'file_name = OpenFileDialog.SafeFileName
file_name = OpenFileDialog.FileName
End If
Catch ex As Exception
Logger.LogInfo(ex) : MsgBox(ex.Message)
End Try
Catch ex As Exception
Logger.LogInfo(ex) : MsgBox(ex.Message)
End Try
End Sub
Пожалуйста, советы.
Это может не помочь в вопросе - но вы должны * определенно * ознакомиться с пространством имен System.IO, особенно с классом System.IO.Path. –