C# Savefiledialog出现Stackoverflow异常

C# Savefiledialog出现Stackoverflow异常,c#,winforms,savefiledialog,C#,Winforms,Savefiledialog,在WinForms应用程序中使用SaveFileDialog保存xml文件时,我收到Stackoverflow异常。代码没有什么特别之处: DialogResult result = saveFileDialog.ShowDialog(); if (result == DialogResult.OK) { txtOutputFile.Text = saveFileDialog.FileName; // do something } 它在ShowDialog()中立即失败 只

WinForms
应用程序中使用
SaveFileDialog
保存xml文件时,我收到
Stackoverflow
异常。代码没有什么特别之处:

DialogResult result = saveFileDialog.ShowDialog(); 
if (result == DialogResult.OK) 
{
    txtOutputFile.Text = saveFileDialog.FileName;
    // do something
}
它在
ShowDialog()
中立即失败

只有在输入文件名后在对话框中按Enter键时,我才会收到它。如果我用鼠标按Save,一切正常

我在Windows7机器上收到了这个异常,在Windows10上试过-一切正常。有什么想法吗


更新:很抱歉,我现在无法在我使用了几天的机器上重现此问题(在同一程序中,没有任何相关更改)

我发现这个线程试图为同一个问题找到修复方法

我能够在构建配置管理器中解决针对特定体系结构的问题


确保将配置设置为
x86
x64
,而不是
任何CPU

此代码在哪里?你能在一个简短但完整的程序中重现这个吗?我将尝试提取相关代码并更新我的帖子。你什么时候显示对话框?在事件处理程序中?如果是,是什么活动?异常的堆栈跟踪是什么?我在browseButton_单击中显示它,用户按。。。按钮和对话框正在显示。稍后将发布stacktrace,您的程序也将接受shell扩展。当您使用诸如OpenFileDialog和SaveFileDialog之类的shell对话框时加载到进程中的DLL。非常讨厌的代码注入如果你有一个已经崩溃的代码注入,它肯定会注入一个SOE并终止进程。当您启用非托管代码调试时,可以看到它们正在加载。使用SysInternals的自动运行清理您的机器。