Visual studio Crystal报告使visual studio崩溃

Visual studio Crystal报告使visual studio崩溃,visual-studio,crystal-reports,Visual Studio,Crystal Reports,我有一个C#2.0应用程序,可以启动Crystal Reports viewer并显示一些报告。如果我在VisualStudio之外的调试或发布模式下运行此程序,则运行良好。如果我通过Visual Studio 2005对此进行调试,报告将弹出,但一两分钟后VS会在ContextSwitchDeadlock上崩溃,并告诉我没有为任何调用堆栈帧加载任何符号,因此我无法对其进行调试 这可能与报告是在另一个线程上发布有关。原因有点复杂,但我会尽力解释一下,以防它很重要: 我们有一个在后台线程上运行的长

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

这可能与报告是在另一个线程上发布有关。原因有点复杂,但我会尽力解释一下,以防它很重要:

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


这有意义吗?有人知道为什么我会在VS中使用ContextSwitchDeadlock MDA,但当代码独立运行时不会引发异常吗?

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

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

尝试重命名您的c:\temp\directory-如果c:\temp\Crystal报告中有XML文件崩溃,并且您无法打开它们,则有一个已知问题。

尝试重命名您的c:\temp\directory-如果c:\temp\Crystal中有XML文件,则有一个已知问题报告崩溃,您无法打开它们。

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

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


注:@johncruz不,他没有,我的项目中没有使用单独的线程,并且出现了相同的ContextSwitchDeadlock错误。

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

附言:@johncruz不,他没有,我在我的项目中没有使用单独的线程,并且得到了相同的ContextSwitchDeadlock错误