带有 Savefiledialog 的 *** 异常

Posted

技术标签:

【中文标题】带有 Savefiledialog 的 *** 异常【英文标题】:*** exception with Savefiledialog 【发布时间】:2015-09-16 08:44:01 【问题描述】:

WinForms 应用程序中借助SaveFileDialog 保存xml 文件时,我收到*** 异常。代码没什么特别的:

DialogResult result = saveFileDialog.ShowDialog(); 
if (result == DialogResult.OK) 

    txtOutputFile.Text = saveFileDialog.FileName;
    // do something

它在ShowDialog() 中立即失败。

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

我在 Windows 7 机器上收到此异常,在 Windows 10 上尝试过 - 一切正常。有什么想法吗?

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

【问题讨论】:

这段代码在哪里?你能在一个简短但完整的程序中重现这个吗? 我会尝试提取相关代码并更新我的帖子 什么时候显示对话框?在事件处理程序中?如果是,事件是什么?异常的堆栈跟踪是什么? 我在browseButton_Click中显示它,用户按下...按钮并显示对话框。稍后也会发布堆栈跟踪 您的程序将受到外壳扩展。当您使用 OpenFileDialog 和 SaveFileDialog 等 shell 对话框时加载到您的进程中的 DLL。如果你有一个很糟糕的代码注入,它当然可以注入一个 SOE 并终止进程。当您启用非托管代码调试时,您可以看到它们正在加载。使用 SysInternals 的 AutoRuns 清理您的机器。 【参考方案1】:

我发现这个帖子试图找到解决同一问题的方法。

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

确保配置设置为x86x64 而不是Any CPU

【讨论】:

以上是关于带有 Savefiledialog 的 *** 异常的主要内容,如果未能解决你的问题,请参考以下文章

SaveFileDialog 在调用 showDialog() 后直接自动关闭

如何使用 SaveFileDialog 的过滤器

c# savefiledialog 保存特定长度的文本

如果取消,为啥我的 SaveFileDialog 会再次显示?

禁用部分 SaveFileDialog

不使用 SaveFileDialog 保存文件