【问题标题】:How to fix 'vshost32.exe has stopped working' when calling the ShowDialog of OpenFileDialog?调用OpenFileDialog的ShowDialog时,如何修复'vshost32.exe已停止工作'?
【发布时间】:2019-11-01 04:09:51
【问题描述】:

我在 Visual Basic 2010 Express 中制作了一个简单的项目,我在其中上传了一张照片,它需要 OpenFileDialog 的 ShowDialog。如果我将该特定表单设置为启动表单,它可以正常工作。但如果我从其他地方开始,我会收到错误“vshost32.exe 已停止工作”。我还尝试在其他地方触发该功能,但似乎如果两个表单处于活动状态,则会显示错误。我也用相同的功能测试了其他项目,它们都可以工作。

这是我尝试过的事情的清单:

取消选中“启用 Visual Studio 托管进程”

选中“启用 ClickOnce 安全设置”

以管理员身份运行 VB 2010

创建一个新项目并复制所有内容

重启我的笔记本电脑

这是我刚刚在此处复制的函数:

Function UploadPhoto()
    Try
        Using openFileDialog1 As New OpenFileDialog()
            openFileDialog1.InitialDirectory = "D:\Pictures"
            openFileDialog1.RestoreDirectory = True
            openFileDialog1.Filter = "JPEGs|*.jpg|GIFs|*.gif|Bitmaps|*.bmp|PNGs|*.png|AllFiles|*.*"
            If openFileDialog1.ShowDialog = Windows.Forms.DialogResult.Cancel Then Exit Function

            If openFileDialog1.FileName.Length = 0 Then

            Else
                imgpath = System.IO.Path.GetFullPath(openFileDialog1.FileName)
                Try
                    Dim bmp As New Bitmap(openFileDialog1.FileName)
                    If Not IsNothing(picItem.Image) Then picItem.Image.Dispose() 
                    picItem.Image = bmp
                Catch
                    MsgBox("Not a valid image file.")
                End Try
            End If
        End Using
    Catch ex As Exception
        MessageBox.Show(ex.ToString & vbCrLf & ex.Message.ToString & vbCrLf & ex.StackTrace.ToString)
    End Try
End Function

稍后,我会尝试卸载并重新安装 VB 2010

【问题讨论】:

  • 尝试在.NET 4.0 或更高版本开发PC/机器时更新您的框架
  • ShowDialog() 无法诊断的崩溃并不少见。如果您启用非托管调试,您只能看到 something。这距离解决行为不端的 shell 扩展可能导致的问题还有很长的路要走。重新安装框架或 VS 不会做任何有用的事情。使用 SysInternals 的 Autoruns 实用程序将它们一一禁用,从 Microsoft 未提供的开始。
  • @G3nt_M3caj 我已经安装了 .NET 4.0
  • 尝试禁用 vshost(正如我在下面的答案中描述的那样)并重新尝试直接调试您的应用程序,标签是(“激活视觉工作室托管过程”)或类似的英文: )
  • 另一件事可能是:如果您的应用程序“CPU 目标”是“任何 CPU”,请勾选“首选 32 位”或更改 32 位的构建目标。

标签: vb.net vb.net-2010


【解决方案1】:

好的,试试其他方法,

1 - 删除 obj 和 bin 文件夹

2 - 之后,您现在似乎正在 Visual Studio 主机 (vshost.exe) 沙箱下进行调试。 尝试直接调试您的应用程序(如下图所示)。

【讨论】:

    猜你喜欢
    • 2011-10-29
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 2017-01-06
    • 1970-01-01
    • 2016-07-09
    • 2012-03-31
    • 1970-01-01
    相关资源
    最近更新 更多