C# 水晶报表部署问题

弄好了一个水晶报表,现准备做个封装,在网上查了许久,发现了一些可用资源,先贴下来,等部署成功后再加以修改

参考了:http://blog.joycode.com/ghj/archive/2003/10/20/3005.aspx  郭红俊 blog

            http://www.cnblogs.com/babyt/archive/2008/02/20/1075055.html 阿泰blog

 

怎样部署使用Crystal   Reports和VS.NET 的程序?

注意:

      在部署使用Crystal Reports和Visual Studio.NET   的程序之前,你必须确认下列信息:

      与Visual Studio.NET一起使用的Crystal Reports版本,可能的版本为:

      -   Crystal   Reports   for   Visual   Studio   .NET   2002    
      -   Crystal   Reports   for   Visual   Studio   .NET   2003   
      -   Crystal   Reports   9    
      -   Crystal   Reports   9.2 

          Crystal   Reports   管理组件的“程序集版本”。

      要检查Crystal   Reports 管理组件的“程序集版本”,查看Visual Studio.NET里的“项目”> “引用”。

      Crystal Reports管理组件包括:

      -   CrystalDecisions.CrystalReports.Engine 

      -   CrystalDecisions.Reportsource     
      -   CrystalDecisions.Shared    
      -   CrystalDecisions.Web    
      -   CrystalDecisions.Windows.Forms. 

      所有Crystal Reports管理组件的“程序集版本”必须相同。

解决方案:

      ----------------------------------------------------------------------------------------------------------------------------------------------

      要部署使用Crystal Reports for Visual Studio.NET 2002的程序

      1.   确保Crystal Reports管理组件的“程序集版本”为9.1.3300。

      2.   下载完整的crnet部署指南: 

      http://support.crystaldecisions.com/communityCS/TechnicalPapers/crnet_deployment.pdf.asp?recDnlReq=Record&dnlPath=crnet_deployment.pdf (链接已失效)

      ----------------------------------------------------------------------------------------------------------------------------------------------

      要部署使用Crystal Reports for Visual Studio.NET 2003的程序

      1.   确保   Crystal   Reports   管理组件的“程序集版本”为   9.1.5000.0。

      2.   下载完整的   crnet   部署指南:

      http://support.crystaldecisions.com/communityCS/TechnicalPapers/crnet_deployment.pdf.asp?recDnlReq=Record&dnlPath=crnet_deployment.pdf (链接已失效)

      3.   使用下列合并模块替换'crnet_deployment.pdf'里的合并模块:

      Crystal_Database_Access2003.msm    
      Crystal_Database_Access2003_enu.msm    
      Crystal_Managed2003.msm    
      Crystal_regwiz2003.msm    
      VC_User_CRT71_RTL_X86_---.msm(被基于ADO.NET的报表使用used for reports based on   ADO.NET)    
      VC_User_STL71_RTL_X86_---.msm(被基于ADO.NET的报表使用used for reports based on   ADO.NET)

      ----------------------------------------------------------------------------------------------------------------------------------------------

      要部署使用Crystal Reports 9(仅限于 Visual Studio 2002)

      1.   确保Crystal Reports管理组件的“文件版本”为9.2.9466.x。

      通过查看"/Program   Files/Common   Files/Crystal   Decisions/2.0/Managed/"文件夹里的、任何管理组件   CrystalDecisions.xxx.dll   的属性,获得“文件版本”;或者通过查看全局访问缓存   (/winnt/assembly)里的相应程序集。

      要查看全局访问缓存里的“文件版本”,找到任何一个“程序集版本”为   9.2.3300.0的Crystal Decisions管理组件程序集

     (例如CrystalDecisions.CrystalReports.Engine),在文件上右击并选择“属性”。

      选择“版本”选项卡,并检查“文件版本”。  

      2.下载完整的cr9net部署指南:

      http://support.crystaldecisions.com/communityCS/TechnicalPapers/cr9net_deployment.pdf.asp?recDnlReq=Record&dnlPath=cr9net_deployment.pdf  (链接已失效)

      3.下载Crystal  Reports 9合并模块。这些合并模块可能组成一个基于Microsoft Installer (MSI)安装包,以包含相应的运行时文件。

      4. 如果你要部署到一个   Web   服务器,你可以安装预编译   MSI   installer   包,已提供下载,用作一次性部署。这个分发包安装.NET程序需要的所有Crystal运行时文件。下载预编译MSI installer包:

      http://support.crystaldecisions.com/communityCS/FilesAndUpdates/cr9netredist.zip.asp?recDnlReq=Record&dnlPath=cr9netredist.zip (链接已失效)

      ----------------------------------------------------------------------------------------------------------------------------------------------

      要部署使用Crystal Reports 9.2 (和Visual Studio 2002和2003)     
      1. 确保Crystal Reports管理组件的“文件版本”为   9.2.9500.x。   
      通过查看"/Program   Files/Common   Files/Crystal   Decisions/2.0/Managed/"   文件夹里的,任何管理组件   CrystalDecisions.xxx.dll   的属性,获得“文件版本”;或者通过查看全局访问缓存   (/winnt/assembly)里的程序集。

      要查看全局访问缓存里的“文件版本”,找到任何一个“程序集版本”为   9.2.3300.0   的   Crystal   Decisions   程序集(例如   CrystalDecisions.CrystalReports.Engine),在文件上右击并选择“属性”。  

      选择“版本”选项卡,并检查“文件版本”。  

      2.下载完整的cr9net部署指南:

      http://support.crystaldecisions.com/communityCS/TechnicalPapers/cr9net_deployment.pdf.asp?recDnlReq=Record&dnlPath=cr9net_deployment.pdf  (链接已失效)

      3.使用合并模块'dotnetruntime.msm'替换'cr9net_deployment.pdf'里的'crnetruntime.msm'  

      你可以在Crystal Reports 9.2光盘的'/redist/dotnet/msm'   文件夹里找到所需的合并模块。

      4.如果你要部署到一个Web服务器,你可以安装光盘里的、用作一次性部署的预编译MSI installer包。这个分发包安装.NET程序需要的所有Crystal运行时文件。预编译installer包在光盘的"/redist/netsvr.msi"文件夹里。

      http://support.crystaldecisions.com/communityCS/FilesAndUpdates/cr9netredist.zip.asp?recDnlReq=Record&dnlPath=cr9netredist.zip   (链接已失效)

      ----------------------------------------------------------------------------------------------------------------------------------------------

      ----------------------------------------------------------------------------------------------------------------------------------------------

      注意:

      当与Visual Studio2003里的ADO.NET一起使用Crystal Reports 9.2时,进行下列合并模块的替换:

      Vc_crt.msm   -   被   VC_User_CRT71_RTL_X86_---   .msm   替换  
      Vc_stl.msm   -   被   VC_User_STL71_RTL_X86_--   -.msm   替换   
      你可以在'C:/Program   Files/Common   Files/Merge   Modules' 文件夹下找到替换的合并模块。

      ----------------------------------------------------------------------------------------------------------------------------------------------

      要查找下面的部署白皮书,访问:

      http://support.crystaldecisions.com/search

      Crystal Reports 9应用程序部署白皮书   -   cr9net_deployment.pdf    

      Crystal Reports 9 for Visual Studio.NET   应用程序部署白皮书  -   crnet_deployment.pdf

      ----------------------------------------------------------------------------------------------------------------------------------------------

      VS .NET 2005中水晶报表的打包部署

      程序打包的时候,要把水晶报表的注册码也给打进去,还有一些必须的合并模块需要添加。
     具体操作步骤:
  
      (1)新建“安装和部署项目”-->“安装项目”
      (2)选择项目类型(这里选“创建用于windows应用程序的安装程序”)-->下一步
      (3)选择要包含的文件:
         一是要部署的应用程序(包括项目主输出,内容文件,内嵌文件等等),
         二是需要添加的合并模块(在该部署项目节点上点右键-->添加),主要是包括以下几个文件:
   Crystal_Database_Access2003.msm
   Crystal_Database_Access2003_enu.msm
   Crystal_Managed2003.msm
   Crystal_regwiz2003.msm
   VC_User_CRT71_RTL_X86_---.msm
   VC_User_STL71_RTL_X86_---.msm
   你可以在'C:/Program Files/Common Files/Merge Modules'文件夹下找到替换的合并模块。
  
   这些模块的具体功能如下:
   managed.msm、managed_chs.msm、(托管组件 MSM 处理所有托管组件的分发,其中包括Windows 窗体查看器、Web 窗体查看器和所有 Crystal Decisions 命名空间)
  database_access.msm、database_access_chs.msm、(对于使报表运行所需的所有其他文件,由数据库访问 MSM 处理其分发。其中包括数据库、导出和图表驱动程序。)
  regwiz.msm、(KeyCode MSM 处理 Crystal Decisions 密钥号码的安装)
  VC_CRT.msm、VC_STL.msm(这是vc的运行库,估计是Crystal Report或涉及到的某些程序是用vc写的,所以需要它--此处为某一网友观点) 
      (4)打开解决方案-->右键点击Crystal_regwiz2003.msm 的属性,在“MergeMouduleProperties”里的“License Key”填入:XXXXXX(这个是你生成Crystal Report是用到的注册号的密码,不填不能编译)  
      (5)生成解决方案
      --over--
  

补充:

 

CrystalReportsRedist2005_x86.msm 下载备忘
2009-05-12 19:00

http://resources.businessobjects.com/support/communityCS/FilesAndUpdates/cr_net_2005_mergemodules_mlb_x86.zip

http://resources.businessobjects.com/support/communityCS/FilesAndUpdates/cr_net_2005_mergemodules_mlb_ia64.zip

http://resources.businessobjects.com/support/communityCS/FilesAndUpdates/cr_net_2005_mergemodules_mlb_x64.zip

 

************** 异常文本 **************
  System.TypeInitializationException: “CrystalDecisions.CrystalReports.Engine.ReportDocument”的类型初始值设定项引发异常。 ---> System.Runtime.InteropServices.COMException (0x80040154):
带有 CLSID {CF76A644-314B-404D-8D45-F08B51FF990B} 的 COM 对象无效或未注册。


      刚开始使用水晶报表的朋友们基本上都是按照这个步骤来操作的。
      但是,在程序执行的时候会出现一个异常:
 

 

解决这一问题的方法是,
首先到这里
http://support.businessobjects.com/downloads/merge_modules.asp#07下载
Merge Modules for Crystal Reports for Visual Studio .NET 2005 ,
然后把这个CrystalReportsRedist2005_x86.msm这个合并模块添加到部署项目中,编译,大功告成!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值