代码之家  ›  专栏  ›  技术社区  ›  DilbertDave

Crystal Reports在将应用程序升级到vs2008\.net 3.5之后失败

  •  0
  • DilbertDave  · 技术社区  · 15 年前

    我正在将现有的asp.net2.0应用程序升级到.net3.5(从vs2005迁移到2008-是的,我知道我迟到了!)并且遇到了水晶报告的问题。

    基本上,下面的代码行导致webdev.webserver.exe关闭,应用程序崩溃(我返回到vs)。

    CrystalDecisions.CrystalReports.Engine.ReportDocument rd = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
    

    该行位于try/catch中,但此时不引发异常。

    我试过创建一个新的项目,只是包含了这一行,它也崩溃了——所以它不是应用程序本身。
    然后我尝试使用旧版本的dll(10.5.3700.0而不是11.5.3700.0),它在虚拟应用程序中工作正常。显然,我不想降级实际的应用程序,但这样做确实解决了问题(我还需要降级其他CR DLL,这样它可能会在应用程序中产生连锁反应)。

    我找不到对更高版本的DLL的任何引用,并且已从Crystal Reports下载了最新的VS2008运行时包,但这没有任何区别-尽管安装程序似乎什么也没做,但事件查看器确认安装成功。

    有没有其他人经历过这种情况,或者知道如何绕过它——除了降级的DLL?

    [编辑]我可以通过关闭数据执行保护来解决问题,但这不是一个可行的解决方案-我几乎没有告诉客户这样做!此外,在vs2005/.net2.0中,一切都运行良好!

    1 回复  |  直到 15 年前
        1
  •  0
  •   DilbertDave    15 年前

    我可能在这里找到了答案-它看起来像水晶报表XR2(DLL版本115.37 00 .0)是不兼容的VS2008。

    This Business Objects document 或多或少证实了这一点,尽管奇怪的是,V10.5和2008(XIR2的任一侧)是兼容的。文件还说,数据执行预防可能需要关闭,但这(在我看来)是不可行的。

    我要删除XR2,安装2008,看看我如何去-我会回后,我完成了。

    [编辑]做到了!奇怪的是v10和v12是支持的,但v11不是。

    [编辑]也许我很快就开始对自己感到满意了-虽然它现在在我的本地开发PC上工作,但是部署到服务器就不那么简单了。我已尝试安装正确的运行时,但当报表查看器打开时,我在浏览器中收到一条错误消息“找不到文件:c:\windows\temp\9as00af.dll”。

    [最终编辑]看起来我不得不回到10.5.3700.0版本,即与VS2008一起提供的Crystal Reports版本。然后在服务器上安装运行时就解决了问题