CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

文件打包安装后水晶报表为何找不到密钥dll或密钥错误!??谢谢!!

楼主tzhguan(辰雨)2003-11-03 20:49:11 在 .NET技术 / C# 提问

我已经添加合并模块!!??  
  谢谢! 问题点数:0、回复次数:14Top

1 楼tzhguan(辰雨)回复于 2003-11-03 21:14:26 得分 0

upTop

2 楼LA003(五音不全爱唱歌的洋)回复于 2003-11-03 22:12:15 得分 0

帮你up   一下Top

3 楼haibodotnet(海波.NET)回复于 2003-11-04 09:53:55 得分 0

海波.NET  
  问题:  
  QA:Cannot     find     KeycodeV2.dll,     or     invalid     keycode.    
  Exception     Details:     CrystalDecisions.CrystalReports.Engine.InternalException:     Cannot     find     KeycodeV2.dll,     or     invalid     keycode.    
  ------------------------------------------------  
  问题分析:  
  错误原因是因为   ASPNET   账号没有下列的注册表项的读权限……  
  -   HKEY_CLASSES_ROOT\Interface\{4A4D268A-DF9B-4FC1-8301-D9FEEEF69F9C}    
  -   HKEY_CLASSES_ROOT\TypeLib\{8D43D0B9-C14E-4577-9E67-A9A1EEF82302}    
  ------------------------------------------------  
  解决方案:  
  1、进入   32   位注册表编辑器(开始-〉运行-〉输入   regedt32);  
  2、选中注册表项,如:HKEY_CLASSES_ROOT\Interface\{4A4D268A-DF9B-4FC1-8301-D9FEEEF69F9C};  
  3、在“安全”菜单,选择“权限”命令,进入“权限”对话框;  
  4、从本地计算机添加   ASPNET   账号,并赋予读权限。Top

4 楼xjaifly(tiantian)回复于 2003-11-04 10:47:57 得分 0

请问你在Crystal_regwiz2003.msm的属性中加入了水晶报表的注册码吗!  
  或着你的.net没有安装完全,看下安装程序!Top

5 楼tzhguan(辰雨)回复于 2003-11-04 10:55:32 得分 0

upTop

6 楼tzhguan(辰雨)回复于 2003-11-07 14:51:33 得分 0

upTop

7 楼tzhguan(辰雨)回复于 2003-11-19 23:02:10 得分 0

upTop

8 楼wangj2001(乡村酒吧)回复于 2003-11-20 23:30:25 得分 0

你的问题解决了吗?没解决给我发邮件:gangleader@126.com  
  尽力帮你解决。Top

9 楼musclecn(大力水手)回复于 2003-11-20 23:31:56 得分 0

http://www.yesky.com/20030327/1659638.shtmlTop

10 楼NetAnt007(飞呀飞)回复于 2003-11-21 08:25:53 得分 0

打开你配置文件,你发现有2套report的描述   ,把旧的删除掉就行了。  
  Top

11 楼flying423(问心无愧)回复于 2003-11-21 08:33:11 得分 0

upTop

12 楼wangj2001(乡村酒吧)回复于 2003-11-21 09:28:22 得分 0

安装Crystal   Report   9   Advanced   Edtion   中文版后,在vs.net的MSDN中多了个Crystal   Report   9文件夹,明显就是Crystal   Report   9   Advanced   Edtion   中文版带的帮助文档了。在其中找到了“部署包含   Crystal   Reports   的   Windows   应用程序”这个主题,这里给出的如何部署Crystal   Reports   的   Windows   应用程序说明跟vs.net本身带的crystal的部署说明基本一致,就是多了一点“如果您部署的   Windows   应用程序使用   ADO.NET   数据集,则还需要包括   VC_CRT   和   VC_STL   合并模块。”这个说明,其实我的程序里就用了ADO.NET   数据集,就必须把VC_CRT   和   VC_STL   合并模块打包进MSI,按照说明一步步的重新生成了一个MSI安装文件,安装到三台目标机器。  
   
  安装完毕,运行程序,显示报表又出问题了,报错:  
   
     
   
  load   crpe32.dll   failed  
   
     
   
  查遍了Crystal   Report   9   Advanced   Edtion   中文版的随机文档,帮助文件都查不出问题所在,无奈之下到crystal的官方网站support.crystaldecisions.com去查找有没有问题的答案,在上面找到关于Crystal   Report   9的升级文档“Merge   Modules   for   Simplified   Chinese   Crystal   Reports   9   and   .NET”的一个文件名为cr9netmergemodules_chs.zip的文件,是部署Crystal   Report   9的合并包,加压这个文件,看其中的readme.txt文件,按其中的说明下载了这个合并包的详细说明文档cr9net_deployment.pdf。  
   
  真是不看不知道,一看气死人。原来Crystal   Report   9的部署跟随机的帮助文档说的完全不同,随机带的那个文档应该适用于Crystal   Report   for   .net版本的,对Crystal   Report   9的部署根本就不适用。  
   
  下面是cr9net_deployment.pdf说明中的部署Crystal   Report   9的步骤:  
   
  打开   Windows   应用程序。    
  在解决方案资源管理器中,右击   Windows   应用程序解决方案,指向“添加”,然后单击“新建项目”。    
  在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。单击“确定”按钮。    
  在解决方案资源管理中,右击安装项目,指向“添加”,然后单击“项目输出”。    
  在“添加项目输出组”中,选择“主输出”,然后单击“确定”。    
  将自动添加所有依赖项,如   dotnetfxredist_x86_enu.msm和dotnetcrystalreports.msm。  
   
  需要将dotnetcrystalreports.msm排除在项目之外,在解决方案资源管理器中右击这个模块的右键,选择“排除”。    
  在解决方案资源管理器中,右击安装项目,指向“添加”,然后单击“合并模块”。    
  在“添加模块”对话框中,选择下列要添加到安装项目的合并模块,然后单击“打开”:    
  reportengine.msm,    
  crnetruntime.msm    
  license.msm    
  mapping.msm   (可选,当在报表中使用了geographic   maps时)    
  VC_CRT.msm、VC_STL.msm(   如果您部署的   Windows   应用程序使用   ADO.NET   数据集,则还需要包括   VC_CRT   和   VC_STL   合并模块)  
  在解决方案资源管理器中,右击   license.msm   文件,然后选择“属性”。    
  在“属性”窗口中,展开   MergeModuleProperties,然后在“许可证密钥”属性框中输入一个有效的许可证密钥。    
  注意       每当部署   Crystal   Reports   应用程序时,必须提供许可证密钥。    
  从“生成”菜单中,选择“生成解决方案”以生成应用程序  
  OK,这回生成的MSI再到三个目标机器上安装后,结果如下:  
   
  1.             Win   xp   的机器一切正常,显示,导出,导出的word文档都正常。  
   
  2.             Win2000的机器,还是那样,报表显示正常,可是一旦点击了报表显示器中的导出图标,整个程序就死掉了,在任务管理器显示“未响应”,只能强行关掉。  
   
  3.             win98第二版的机器,报表显示正常,但是一旦点击了报表显示器中的导出图标,出现一下错误:  
   
  “文件内c:\windows\temp\temp_3bbd1e66-a59b-4001-a8e4-3ebfd436ab2d.rpt出错:无效导出dll或导出格式。”  
   
  到此的结果就是这样,我不知道为什么在Win2000的机器两个版本的导出都会造成程序死掉(实际上我安装了两台win2000的机器,结果都是这样),也不知道为什么在win98第二版上面,crystal   for   .net的版本就一切正常,而Crystal   Report   9版本就会在导出时出错。Top

13 楼wangj2001(乡村酒吧)回复于 2003-11-21 09:28:58 得分 0

项目的需要,要使用crystal做报表显示,水晶报表功能就是强大,做的报表就是漂亮,不过在使用过程中经常会遇到一些问题,很是麻烦,最可气的是其随软件的帮助有时都会误导你。下面我将我这次的经历展示一下,以免同道再走我的弯路。  
   
  我的开发环境是win   xp   professional   +   visual   studio   for   .net   2002   +   crystal   for   .net。  
   
  先是设计程序,设计报表rpt,关于怎么设计报表,这是个很复杂的事情,不过在这不是问题,也不是我要叙述的重点,反正我在上述环境下设计出来了一个可以显示报表的dotnet   window应用程序,在这个开发环境下运行正常。  
   
  我尝试着把这个程序制作成一个MSI安装文件,然后去部署到没有visual   studio   for   .net   2002   +   crystal   for   .net的机器上。过程是这样的:  
   
  1.             在vs.net中的当前当前解决方案中新建一个安装项目。  
   
  2.             添加一个项目输出,把上述那个程序项目的主输出加入。  
   
  3.             系统会把这个引入的项目的相关依赖项都包含到“检测到的依赖项”文件夹中,这些依赖项都会被打包到MSI中。  
   
  4.             build  
   
  以为系统会自动侦测出涉及到crystal   for   .net要使用到的组件,打包完后去目标机器安装(目标机器一共三台,分别是win98第二版,win2000   server,win   xp   professional),结果三台机器安装完后运行结果一样,当显示报表时,出现一下错误:  
   
     
   
  Cannot   find   KeycodeV2.dll,   or   invalid   keycode  
   
     
   
  查找vs.net带的MSDN,发现部署Crystal   Reports   运行时的说明:  
   
  分发应用程序时,须确定您的安装中所需要的   Crystal   Decisions   文件。您要包括的文件取决于是否在报表中使用图表、地图和其他公式语言函数,同时也取决于报表所用的数据源以及您希望向最终用户提供的导出选项。幸运的是,如果您在使用   Microsoft   Installer   (MSI),则可以在您的安装包中包括的合并模块   (MSM)   以简化分发。  
   
  MSI   合并模块可在“C:\Program   Files\Common   Files\Merge   Modules”目录中找到。根据您正在分发的组件和语言,您可选用不同的合并模块。这些合并模块分为三类:托管组件、数据库访问和密钥号码。  
   
  托管组件   MSM   处理所有托管组件的分发,其中包括   Windows   窗体查看器、Web   窗体查看器和所有   Crystal   Decisions   命名空间。对于使报表运行所需的所有其他文件,由数据库访问   MSM   处理其分发。其中包括数据库、导出和图表驱动程序。KeyCode   MSM   处理   Crystal   Decisions   密钥号码的安装,这样您的用户在查看报表时,就不会被要求注册他们的   Crystal   版本。  
   
     
   
  具体操作步骤:  
   
  1.             打开   Windows   应用程序。    
   
  在解决方案资源管理器中,右击   Windows   应用程序解决方案,指向“添加”,然后单击“新建项目”。    
  在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。单击“确定”按钮。    
  在解决方案资源管理中,右击安装项目,指向“添加”,然后单击“项目输出”。    
  在“添加项目输出组”中,选择“主输出”,然后单击“确定”。    
  将自动添加所有依赖项,如   Managed.msm。    
   
  在解决方案资源管理器中,右击安装项目,指向“添加”,然后单击“合并模块”。    
  在“添加模块”对话框中,选择下列要添加到安装项目的合并模块,然后单击“打开”:    
  Database_Access.msm    
  Database_Access_enu.msm    
  regwiz.msm    
  VC_CRT.msm、VC_STL.msm(   如果您部署的   Windows   应用程序使用   ADO.NET   数据集,则还需要包括   VC_CRT   和   VC_STL   合并模块)  
  在解决方案资源管理器中,右击   regwiz.msm   文件,然后选择“属性”。    
  在“属性”窗口中,展开   MergeModuleProperties,然后在“许可证密钥”属性框中输入一个有效的许可证密钥(密钥AAP5GKS0000GDE100DS)。    
  注意       每当部署   Crystal   Reports   应用程序时,必须提供许可证密钥。    
   
  从“生成”菜单中,选择“生成解决方案”以生成应用程序。    
  按照上述步骤制作MSI安装文件,再次部署到目标机器(当部署到客户机或服务器时,应始终确保该计算机安装了   .NET   Framework)。同样是安装到上述win98第二版,win2000   server,win   xp   professional这三台机器,结果是:  
   
  1.                 win98第二版,win   xp   professional这两台机器上运行正常,报表显示正常,报表导出也正常。  
   
  2.                 win2000   server机器上安装正常,显示报表正常,可是一旦点击了报表显示器中的导出图标,整个程序就死掉了,在任务管理器显示“未响应”,只能强行关掉。  
   
  这个结果勉强还可以接受,大不了这个程序不在win2000运行就是了。不过又发现一个新的问题,就是导出的word文档跟在报表显示器中显示的不是严格一致的,有一些差别,而且这个差别到了不可忍受的地步:  
   
  1.                 在报表显示器中表格中的文字显示正常,在word中这些表格中的文字被转换成图文框中的,可是转换的图文框高度小了,导致了显示的文字的下面有一小部分显示不出来,效果就是一行文字都被吃掉了下面一部分。  
   
  2.                 一张报表在报表显示器中显示的正好是一页纸,边距都很准确,可是导出的word文档,报表的内容的尾部跑到了页面以外。在设计crystal报表时页面设置是A4的,估计是导出到word文档时纸张的尺寸变了,不是A4了,而且导出的word文档的“页面设置”是暗的,不允许修改。  
   
  而这个软件中的报表一定是要导出到word的,这样的导出效果是不能接受的,于是想到是不是可是升级到crystal9   试试看。  
   
  crystal9是完全支持dotnet的,Crystal   Reports   9   将其功能整合到了   Visual   Studio   .NET   集成开发环境   (IDE)   中,代替原先Crystal   Reports   for   .net,从而增强了   Visual   Studio   .NET   (VS   .NET)   的开发效能。  
   
  安装了Crystal   Report   9   Advanced   Edtion   中文版,看vs.net的帮助中关于,看到crystal的信息显示为:Crystal   Reports   9   for   Visual   Studio   .NET,升级成功。  
   
  重新编译程序,在开发机器上运行程序,报表显示正常,主要是要看导出word文档显示是否正常,在报表显示器中点击导出按钮,导出word文档,结果是word文档显示同报表显示器中显示的报表一模一样,心中暗喜,问题解决了。  
   
  OK,现在要到部署的问题了。Top

14 楼tzhguan(辰雨)回复于 2003-11-25 21:46:57 得分 0

upTop

相关问题

  • 水晶报表的打包
  • 水晶报表打包问题
  • 水晶报表打包问题?
  • 怎样打包水晶报表10.0
  • VB6与水晶报表打包问题?
  • 解决水晶报表Crystal Report 用InstallShield打包Win98下安装某些DLL不能注册!
  • vs2003,部署水晶报表的问题?错误提示:无法找到密钥号码 DLL 或密钥号码无效
  • 水晶报表8.0打包后的问题?
  • 关于打包和水晶报表打印的问题
  • 水晶报表打包部署的问题

关键词

  • .net
  • ado.net
  • vs.net
  • win2000
  • win98
  • 报表
  • 安装
  • 模块
  • 应用程序
  • 项目

得分解答快速导航

  • 帖主:tzhguan

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo