Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单击“打开文件对话框”时会导致异常;新文件夹";按钮或粘贴文件_C#_Exception_Access Violation_Openfiledialog - Fatal编程技术网

C# 单击“打开文件对话框”时会导致异常;新文件夹";按钮或粘贴文件

C# 单击“打开文件对话框”时会导致异常;新文件夹";按钮或粘贴文件,c#,exception,access-violation,openfiledialog,C#,Exception,Access Violation,Openfiledialog,当我使用Visual Studio 2013 C#(无论是否为管理模式)调试我的应用程序并使用OpenFileDialog中的“创建新文件夹”按钮时,它会创建一个新文件夹并导致 SEHException,表示外部组件导致异常 或System.AccessViolationException 当我通过资源管理器启动编译后的应用程序时,不会出现异常 有没有办法解决这个问题 谢谢你的回答 我猜当您直接运行.exe时,它是在您的用户帐户下运行的,该帐户具有更多权限。但对于直接调试,它在VS主机进程下

当我使用Visual Studio 2013 C#(无论是否为管理模式)调试我的应用程序并使用OpenFileDialog中的“创建新文件夹”按钮时,它会创建一个新文件夹并导致

  • SEHException,表示外部组件导致异常
  • 或System.AccessViolationException
当我通过资源管理器启动编译后的应用程序时,不会出现异常

有没有办法解决这个问题


谢谢你的回答

我猜当您直接运行.exe时,它是在您的用户帐户下运行的,该帐户具有更多权限。但对于直接调试,它在VS主机进程下运行,该进程没有创建文件夹的提升权限


因此,在创建.exe时,请确保以提升的权限运行它。以便您可以创建文件夹。或者捕获异常并向用户显示消息,以管理员身份运行该异常。

否,它会创建文件夹,然后引发异常。为什么VS主机进程具有不同的权限?回答:没有。即使是这样,为什么缺乏权利会导致AV?回答:不会,这将导致
错误\u访问\u被拒绝
。啊哈,请将异常文本粘贴到这里好吗?包括内部异常。源:System.Windows.Forms方法:显示类型:System.Runtime.InteropServices.SeHexException错误:Eine externe Komponente hat Eine Ausnahme ausgelöst堆栈跟踪:bei System.Windows.Forms.FileDialogNative.IFileDialog.Show(IntPtr父级)bei System.Windows.Forms.FileDialog.RunDialogVista(IntPtr hWndOwner)bei System.Windows.Forms.FileDialog.RunDialog(IntPtr hWndOwner)扩展堆栈跟踪:--------------------------------------------------------------LogError应用程序\U ThreadException OnThreadException WndProceceException OnThreadException回调DispatchMessageW System.Windows.Forms.UnsafentiveMethods.IMsoComponentManager.FPushMessageLoop RunMessageLoopInner RunMessageLoop Run Main_nExecuteAssembly ExecuteAssembly RunUsersAssembly ThreadStart\u上下文运行内部运行ThreadStartWorks在此处运行良好。我们如何复制这一点?问题可能是一个shell扩展吗?当您使用该对话框时,您会将大量shell扩展加载到您的进程中。他们可能以高度不可诊断的方式行为不端,AVE肯定是一种可能性。启用非托管调试可以为您提供一个不错的线索。当然,最好是积极清理您的机器以使其再次稳定,请使用SysInternals的AutoRuns实用程序。谢谢。但是,当我使用非托管调试时,它会在TableComparer.exe中的0x77CA70CF(ntdll.dll)处引发以下异常(第一次机会):0xC0000008:指定了无效句柄Dalso:右键单击OFD中的“计算机”会导致异常。