2011-06-29 53 views
1

我有一个使用Crystal Reports XI R2(11.5.3700.0)进行报告的.net 2.0应用程序。 它工作正常,在Windows XP,但显示了Windows 7的一个奇怪的行为Crystal Reports在调试模式下工作在外部调试器失败

在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应用程序。

+0

什么是异常(看起来像第一行缺失)? – Nix

+0

异常的类型是System.Exception。 Mesage是“加载报告失败。” – ShellDragon

回答

1

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

  1. 添加以下行到您的文章构建脚本,而忘记这个问题
 
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兼容(按照他们的发行说明,我没有测试过)。
相关问题