Crystal 报告视觉工作室崩溃

问题描述 投票:0回答:5

我有一个 C# 2.0 应用程序,可以启动 Crystal Reports 查看器并显示一些报告。如果我在 Visual Studio 之外的调试或发布模式下运行它,它运行良好。如果我通过 Visual Studio 2005 调试它,报告将会弹出,但一两分钟后 VS 会因 ContextSwitchDeadlock 而崩溃,还告诉我没有为任何调用堆栈帧加载任何符号,因此我无法调试它.

这可能与该报告在另一个线程上启动这一事实有关。其原因有点复杂,但我会尽力解释,以防重要:

我们有一个在后台线程上运行的长时间运行的进程。该过程完成后,它会启动报告。如果它(后台线程)只是在报表查看器表单上调用 Show(非模态),它将立即终止并杀死所有这些报表。因此,它为每个报告启动一个子线程,并使用 ShowDialog(modal) 调用它。这样一来,这些表单看起来彼此都是非模态的,但是当用户关闭最后一个表单时,后台进程线程现在没有子线程并且可以终止。

这有道理吗?有人知道为什么我会在 VS 中获取 ContextSwitchDeadlock MDA,但当代码独立运行时不会抛出异常吗?

visual-studio crystal-reports
5个回答
1
投票

尝试重命名您的 c:emp\ 目录 - 有一个已知问题,如果 c:emp\ 中有 XML 文件,Crystal Reports 会崩溃并且无法打开它们..


0
投票

我认为你回答了你自己的问题......这与你如何在单独的线程中运行它有关。


0
投票

删除或移动 c:/temp 文件夹中的任何 .xml 文件(如果有)。它们导致数据库专家崩溃 VS


0
投票

遇到同样的问题。众所周知,由于 c:emp 目录中存在某些 xml 文件,数据库 Expert 也会导致 VS 崩溃。第一个选项是清空 c: emp 目录(对我有用)。其次,您可以尝试将临时目录重命名为“MyTemp”或类似的名称。最后但并非最不重要的一点是,您可以尝试将项目设置为使用 4.0 Framework 而不是客户端版本。

P.S:@John Cruz 不,他没有,我在项目中不使用单独的线程,并且得到了相同的 ContextSwitchDeadlock-Error。


0
投票

我正在使用 Visual Studio 2022,当我安装缺少的字体时,我的问题就消失了。

© www.soinside.com 2019 - 2024. All rights reserved.