1

レポートにCrystalReportsXI R2(11.5.3700.0)を使用する.net2.0アプリケーションがあります。Windows XPでは正常に動作しますが、Windows7では奇妙な動作を示します。

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アプリケーションです。

4

2 に答える 2

1

この問題は、Windows 7 のデータ実行防止セキュリティ機能が原因です。修正するには 2 つの方法があります。

  1. ビルド後のスクリプトに次の行を追加し、この問題は忘れてください
「$(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 と互換性があります (リリース ノートによると、私はこれをテストしていません)。
于 2011-07-06T05:23:52.733 に答える