安装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的步骤:
将自动添加所有依赖项,如 dotnetfxredist_x86_enu.msm和dotnetcrystalreports.msm。
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版本就会在导出时出错。有哪位知道的请一定要告诉我,我的QQ:362682,email:
本文地址:http://com.8s8s.com/it/it45688.htm