Crystal Reports работает в режиме отладки, выходит из строя вне отладчика - PullRequest
1 голос
/ 29 июня 2011

У меня есть приложение .net 2.0, которое использует Crystal Reports XI R2 (11.5.3700.0) для составления отчетов.В Windows XP он работает нормально, но в Windows 7 демонстрирует странное поведение.

В Windows 7 при работе в режиме отладки (F5) все выглядит хорошо и нормально, но если мы запускаем EXE напрямую (без отладки; CTRL)+ F5) m не удается отобразить отчет.

Я вижу следующую информацию из трассировки стека, но здесь я совершенно не в курсе.

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)

Кто-нибудь когда-либо сталкивался с этой проблемой и вылечился?Любезная помощь всегда приветствуется.

Редактировать: Это приложение работает в одном потоке пользовательского интерфейса.Это приложение Winforms.

1 Ответ

1 голос
/ 06 июля 2011

Эта проблема связана с функцией безопасности Data Execution Prevention в 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 Runtime.Эта среда выполнения совместима с Windows 7 (согласно примечаниям к выпуску. Я не проверял это).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...