Telerik RenderReport引发exception“XLS渲染格式不可用”

我有一个C#WinForms应用程序正在使用Telerik.Reporting DLL生成一个.xlstypes的报告。

我们正在使用Angular开发电子应用程序的增强版本。 我们在使用EdgeJs访问从旧产品到新产品的过渡期间的报告function。 也就是说,我们在遗留应用程序和电子应用程序中运行完全相同的C#代码

问题是Telerik.Reporting RenderReport方法在应用程序的电子版本中引发了“XLS渲染格式不可用”的exception,但在WinForms版本中却没有。 这里是相关的代码行:

var reportSource = new InstanceReportSource { ReportDocument = rpt }; result = processor.RenderReport("XLS", reportSource, null); rptStream = new FileStream(path + "\\" + rpttmpXlsPath, FileMode.Create); rptStream.Write(result.DocumentBytes, 0, result.DocumentBytes.Length); 

我们无法弄清楚为什么会发生这种情况。 以下是我们所知道的:

  1. 所报告的数据在两种情况下都是相同的。
  2. 正在执行的C#代码在两种情况下都是相同的。
  3. 这个问题在其他(非开发)机器上是可重现的。
  4. 在单个开发人员计算机(Window 7 / Excel 2010)上, 不会发生exception ,报告按预期生成。 作为额外的好处,这台机器还包含Telerik许可证来开发报告。
  5. 在Windows 7 / Excel 2010的另一台非开发机器上,我们得到相同的exception。
  6. 我们已经在Windows 7 / Excel 2013机器上testing了应用程序,并得到了exception。
  7. 我们试图更新到最新的EdgeJs无济于事。
  8. 我们还在PDF中呈现了这两个应用程序中的报告。

Telerik报告引擎在无法parsing目标格式所需的依赖项时引发此类exception,但XLS导出例程embedded在Telerik.Reporting.dll中,因此不太可能缺less程序集文件。 与XLSX渲染相比,XLS渲染也没有任何外部依赖性,这需要DocumentFormat.OpenXml.dll。 您必须收集有关exception的更多信息,以查看导致问题的原因。 通常有助于将跟踪侦听器附加到应用程序,并检查其日志以查看exception堆栈跟踪或其他重要细节。 另一个select是使用程序集绑定日志查看器显示程序集绑定的信息,看看它的日志会给你任何有关发生的提示。 请注意,产品要求包括.NET Framework 4+完整configuration文件,并考虑它是否适用于您的scheme。