我有一个.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应用程序。
答案 0 :(得分:1)
此问题是由于Windows 7中的数据执行保护安全功能所致。 有两种方法可以解决它。
call "$(DevEnvDir)\..\..\VC\bin\vcvars32.bat" call "$(DevEnvDir)\..\..\VC\bin\editbin.exe" /NXCOMPAT:NO "$(TargetPath)"
答案 1 :(得分:0)
如果您将报表文件夹用于Crystal报表,我会遇到相同的问题,那么很容易从debug文件夹复制report文件夹,然后将其粘贴到bin文件夹中的release文件夹中,然后在释放模式。 谢谢