水晶报表(CrystalReports)服务器发布部署 版本过高

用vs2005中的自带水晶报表10.2开发了一个web项目,发布到服务器上遇到了一些问题,做个记录。

 

一 基本发布

在本地发布选择“仅限运行此应用程序的发布”后,水晶报表的.rpt文件不会随之发布到web目录,需要手动从项目里copy。

 

二 移至服务器

本地发布后的项目移至服务器后,水晶报表不可用。因为服务器没有安装水晶报表的工具,本地好用是因为装了vs2005默认选项自带安装。

有人在网上对此述说如下:

 

CRRedist2005_x86.msi ,CRREdist2005_x86_chs.msi这两个文件进行安装。

这 两个文件在你电脑上的位置是C:/ProgramFiles/MicrosoftVisualStudio 8/SDK/v2.0/BootStrapper/Packages/CrystalReports下面的CRRedist2005_x86.msi和 CRRedist2005_x86_cn.msi(或CRRedist2005_x86_jp.msi)。

 

我也这样尝试了,但是似乎没有好用,于是我选择直接把vs2005在服务器上的默认路径下从新安装一次,但是只安装CrystalReports组件。 然后在服务器的 C:/Program Files/Common Files/Business Objects/2.7 目录下会多出来两个文件夹:Managed和SSChart。其中主要需要Managed文件夹。

 

 

三 发布后测试

然后又发现问题,打开水晶报表界面时显示“找到的程序集清单定义与程序集引用不匹配”。百度了一下看见CSDN中有人说是因为引用了不同版本的System.Web.Extensions缘故,去Webconfig中屏蔽了

 <!--<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>-->

因为本地装了VS2008,所以版本默认为3.5了。

从新运行,仍旧是这个错误,只是下面的错误描述不同,关于“CrystalDecisions.Enterprise.InfoStore”版本报错。

从新回到项目中查看引用及Webconfig发现,引用中“CrystalDecisions.Enterprise.InfoStore”,“CrystalDecisions.Enterprise.Framework”,及“CrystalDecisions.CrystalReports.Engine“的版本是10.5.3700.0,但是“CrystalDecisions.Enterprise.Desktop.Report”及“CrystalDecisions.Shared","CrystalDecisions.Web"版本为10.2.3600.0,但是webconfig中却为:

 

  <add assembly="CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        <add assembly="CrystalDecisions.Shared, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        <add assembly="CrystalDecisions.ReportSource, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>

        <add assembly="CrystalDecisions.Enterprise.InfoStore, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        
        <add assembly="CrystalDecisions.Enterprise.Framework, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        <add assembly="CrystalDecisions.Enterprise.Desktop.Report, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        <add assembly="CrystalDecisions.CrystalReports.Engine, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>

 

看了一下,引用中这几个dll的路径来自两个地方:

C:/WINDOWS/assembly/GAC/CrystalDecisions.Enterprise.InfoStore/10.5.3700.0__692fbea5521e1304/CrystalDecisions.Enterprise.InfoStore.dll

和C:/Program Files/Common Files/Business Objects/2.7/Managed/CrystalDecisions.ReportSource.dll

 

直接把引用地址改了,所有10.5.3700的均改为10.2.3600.其他不变,从新发布。

 

运行正常啦。

 

总结VS2005水晶报表Web发布过程:                                                                  

1 服务器安装CRRedist2005_x86.msi ,CRREdist2005_x86_chs.msi这两个文件,

或直接用VS2005的安装盘选择CrystalReports组件进行默认安装                              

2 如果不是全部项目文件发布需要把对应的.rpt文件copy到相应的aspx同级目录下         

3 检查引用中的System.Web.Extensions 是否版本过高                                         

4 检测配置文件中的几个水晶报表DLL是否版本是否和引用的版本统一,并且服务器支持     

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值