我有一个使用 ClickOnce 为 500 多个用户部署的 WPF 计费解决方案,CrystaReports2010 用于报告,85% 的用户在他们的机器上安装了 WindowsXP :(
Crystal Reports 在 WindowsXP 机器上运行良好,直到用户使用 Crystal Reports 查看器中的内置导出按钮导出报表,如果他这样做,则导出过程成功完成,但他无法在解决方案,直到他重新启动应用程序。
这是导出后尝试打开新报告时的错误:
我将解决方案中的报告保存为应用程序 .exe 文件之外的内容外部资源,并按需加载它们,如下所示:
var report = new ReportDocument();
report.Load(@"Reports\MyReport.rpt");
我确保在用户关闭报表后关闭并处理报表文档对象,因此没有内存泄漏或超过打开报表的最大数量。
如果我改变了我的实现,将我的解决方案中的报告保存为嵌入式资源,问题就解决了,但这不是一个选项,因为报告的大小相对较大(200KB-450KB),它将是一个很大的 DLL 文件每当我们发布对任何报告有任何更改的新版本时,都将通过 ClickOnce 将其下载给客户!另一种变体是将每个报告分组到一个 DLL 中,比如说四个报告,但仍然存在相同的问题(1MB-2MB 仍然是一大块)。知道我们有很多报告,并且根据客户政策的变化,我们经常收到对这些报告的更改请求。请帮忙!