Wpf Crystal Reports 2010在WindowsXP中将报告导出为任何格式后,所有报告都无法加载

Wpf Crystal Reports 2010在WindowsXP中将报告导出为任何格式后,所有报告都无法加载,wpf,crystal-reports,reportviewer,crystal-reports-export,crystal-reports-2010,Wpf,Crystal Reports,Reportviewer,Crystal Reports Export,Crystal Reports 2010,我有一个WPF计费解决方案,使用ClickOnce为500多个用户部署,CrystaReports2010用于报告,85%的用户的计算机上安装了WindowsXP:( Crystal Reports在WindowsXP机器上正常工作,直到用户使用Crystal Reports Viewer中的内置导出按钮导出报告为止。如果用户这样做,导出过程将成功完成,但在重新启动应用程序之前,他无法打开解决方案中的任何其他报告 这是在导出后尝试打开新报告时出现的错误: 我将解决方案中的报告保存为appli

我有一个WPF计费解决方案,使用ClickOnce为500多个用户部署,CrystaReports2010用于报告,85%的用户的计算机上安装了WindowsXP:(

Crystal Reports在WindowsXP机器上正常工作,直到用户使用Crystal Reports Viewer中的内置导出按钮导出报告为止。如果用户这样做,导出过程将成功完成,但在重新启动应用程序之前,他无法打开解决方案中的任何其他报告

这是在导出后尝试打开新报告时出现的错误:

我将解决方案中的报告保存为application.exe文件外部的内容外部资源,并按需加载,如下所示:

var report = new ReportDocument();
report.Load(@"Reports\MyReport.rpt");
我确保在用户关闭报表后关闭并处置报表文档对象,因此没有内存泄漏或超过打开报表的最大数量


如果我更改了实现,以便将解决方案中的报表保存为嵌入式资源,问题就解决了,但这不是一个选项,因为报表的大小相对较大(200KB-450KB),它将是一个大的DLL文件,每当我们发布一个新版本,对任何报表都有任何更改时,都会通过ClickOnce下载到客户端。另一个变体是将每个报表分组(假设四个报表合并到一个DLL中),但仍然存在相同的问题(1MB-2MB仍然是一个大数据块)。知道我们有很多报告,并且我们会根据客户策略的变化频繁收到这些报告的更改请求。请帮助!

要解决此问题,您必须将客户机上安装的.net版本从客户端配置文件更改为完整的.net版本。

是否关闭并处理您的报告文档一旦你用完了它们,我就找到了解决办法:) 问题是,当您使用Crystal Reports viewer提供的默认导出按钮导出Crystal Report时,导出按钮会将应用程序的当前工作目录更改为导出位置!!!(奇怪的行为!!)这就是为什么下面这行行不通的原因:

report.Load(@"Reports\MyReport.rpt");
因此,我将这一行更改为以下内容:

report.Load(AppDomain.CurrentDomain.BaseDirectory + "\\" + @"Reports\MyReport.rpt");

它的工作原理就像魔术一样:)

我安装了完整的.net framework 4.0版本,但问题仍然存在。是的,我关闭报告并在完成显示后处理它。