Crystal Reports在调试模式下工作在调试器外部失败

时间:2011-06-29 15:13:47

标签: windows-7 crystal-reports-xi

我有一个.net 2.0应用程序,它使用Crystal Reports XI R2(11.5.3700.0)进行报告。 它在Windows XP下运行正常但在Windows 7上显示出奇怪的行为。

在Windows 7中,当在调试模式(F5)下运行时,一切看起来都很好但如果我们直接启动EXE(无调试; CTRL + F5),则无法显示报告。

我可以从堆栈跟踪中看到以下信息,但我在这里完全无能为力。

at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
   at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob)
   at CrystalDecisions.CrystalReports.Engine.ReportClass.Load(String reportName, OpenReportMethod openMethod, Int16 parentJob)
   at CrystalDecisions.CrystalReports.Engine.ReportDocument.EnsureLoadReport()
   at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSourceInternal(Object val, Type type)
   at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSource(DataSet dataSet)

有人遇到过这个麻烦并且恢复了吗? 善意的帮助总是受到赞赏。

编辑:此应用程序在单个UI线程上运行。这是一个Winforms应用程序。

2 个答案:

答案 0 :(得分:1)

此问题是由于Windows 7中的数据执行保护安全功能所致。 有两种方法可以解决它。

  1. 将以下行添加到您的帖子构建脚本中并忘记此问题
  2. call "$(DevEnvDir)\..\..\VC\bin\vcvars32.bat" 
    call "$(DevEnvDir)\..\..\VC\bin\editbin.exe" /NXCOMPAT:NO "$(TargetPath)"
    
    1. 完全禁用DEP(不推荐。它会打开安全漏洞),一切正常。
    2. 安装Crystal Reports XI R2 Service Pack 6运行时。此运行时与Windows 7兼容(根据他们的发行说明。我没有对此进行测试)。

答案 1 :(得分:0)

如果您将报表文件夹用于Crystal报表,我会遇到相同的问题,那么很容易从debug文件夹复制report文件夹,然后将其粘贴到bin文件夹中的release文件夹中,然后在释放模式。 谢谢