在VB.Net中打开“OpenFileDialog”时发生异常“System.AccessViolationException”(VS 2012)

在VB.Net中打开“OpenFileDialog”时发生异常“System.AccessViolationException”(VS 2012),vb.net,access-violation,openfiledialog,Vb.net,Access Violation,Openfiledialog,我非常感谢你在这里的帮助。我的申请如下: 操作系统:Windows 7 64位操作系统 Visual Studio:VS 2012 应用程序:运行在.NETFramework 4上的VB.Net 在我的应用程序中,我有一个按钮,它调用我的自定义方法“选择批处理文件”。单击此按钮后,将打开“OpenFileDialog”以选择特定文件。这在我的机器上工作良好,但上面的配置;在我的一些同事使用上面相同配置的机器上,这不起作用,并且毫无例外地失败。我从我同事的机器上收集了线程转储,如下所示: ====

我非常感谢你在这里的帮助。我的申请如下:

操作系统:Windows 7 64位操作系统 Visual Studio:VS 2012 应用程序:运行在.NETFramework 4上的VB.Net

在我的应用程序中,我有一个按钮,它调用我的自定义方法“选择批处理文件”。单击此按钮后,将打开“OpenFileDialog”以选择特定文件。这在我的机器上工作良好,但上面的配置;在我的一些同事使用上面相同配置的机器上,这不起作用,并且毫无例外地失败。我从我同事的机器上收集了线程转储,如下所示:

======================

日志名称:应用程序

源:.NET运行时

日期:2013年3月18日下午1:54:19

事件ID:1026

任务类别:无

级别:错误

关键词:经典

用户:不适用

说明:

应用程序:Visual AEEMS.exe

框架版本:v4.0.30319

描述:由于未处理的异常,进程已终止

异常信息:System.AccessViolationException

堆栈:

在System.Windows.Forms.FileDialogNative+IFileDialog.ShowIntPtr中

位于System.Windows.Forms.FileDialog.RunDialogVistaIntPtr

位于System.Windows.Forms.FileDialog.RunDialogIntPtr

在System.Windows.Forms.CommonDialog.ShowDialogSystem.Windows.Forms.Iwin32窗口

===============

我遵循了MSDN论坛的一个解决方案,其中要求用户取消选中visual studio>工具>选项>调试>“仅在模块负载管理时抑制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

请给出建议。

如果设置AutoUpgradeEnabled属性,则会出现异常。不知道为什么,但它确实存在。

这可能对这个问题没有帮助,但您肯定应该熟悉System.IO名称空间,尤其是System.IO.Path类。我尝试设置“AutoUpgradeMaped=false”,但仍然存在相同的错误。谢谢你的回复。不要设置它。填充物。呆板的性格限制。