注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

hurt0759的个人主页

人生常态--跋涉.人生暂态--歇息.

 
 
 

日志

 
 

C# 水晶报表部署问题  

2010-01-16 15:28:11|  分类: IT |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在客户端安装了软件包后,在运行打印报表时出错,System.IO.FileNotFoundException: 未能加载文件或程序集“CrystalDecisions.Windows.Forms, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304”或它的某一个依赖项。系统找不到指定的文件。

原来是没有部署好.

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

参考了: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管理组件的“程序集版本”必须相同。

     版本查看--项目--引用--CrystalDecisions.CrystalReports.Engine -右键--属性

解决方案:

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

      要部署使用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)

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

果使用了水晶报表,手动加入要包含的文件:项目-->添加-->合并模块(添加你的程序文件)   (包括dotNetFramework和MDAC27),位于:C:\Program   Files\Common   Files\Merge   Modules\   下,*为必要的
具体功能如下:
                (托管组件   MSM   处理所有托管组件的分发,其中包括   Windows   窗体查看器、Web   窗体查看器和所有   Crystal   Decisions   命名空间)
                *   Crystal_Managed2003.msm 
   

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

      程序打包的时候,要把水晶报表的注册码也给打进去,还有一些必须的合并模块需要添加。
     具体操作步骤:
 
      (1)新建“安装和部署项目”-->“安装项目”
      (2)选择项目类型(这里选“创建用于windows应用程序的安装程序”)-->下一步
      选择相关的文件,还有.NET与水晶报表必要的打上勾就行了.
  
   这些模块的具体功能如下:
   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--
  
      刚开始使用水晶报表的朋友们基本上都是按照这个步骤来操作的。
      但是,在程序执行的时候会出现一个异常:
 ************** 异常文本 **************
  System.TypeInitializationException: “CrystalDecisions.CrystalReports.Engine.ReportDocument”的类型初始值设定项引发异常。 ---> System.Runtime.InteropServices.COMException (0x80040154):
带有 CLSID {CF76A644-314B-404D-8D45-F08B51FF990B} 的 COM 对象无效或未注册。

解决这一问题的方法是,
首先到这里http://www.sdn.sap.com/irj/boc/downloads下载 ,找到相关版本,Crystal Reports 10 (English) - SP 6
Merge Modules for Crystal Reports for Visual Studio .NET 2005 ,
然后把这个CrystalReportsRedist2005_x86.msm这个合并模块添加到部署项目中,编译,大功告成!


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Rommen/archive/2009/09/11/4541650.aspx

  评论这张
 
阅读(1991)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017