利用Visual Studio 2005(以下简称VS2005)开发软件时,如果使用了其中附带的水晶报表(Crystal Report for .NET Framework 2.0) 功能,你将会遇到这种情况:本机上可以正常使用,把你的软件复制在另一机器调用报表功能时就会提示找不到指定的引擎文件而出错误。这时你也许会说,是不是没把Crystal Report组件一起发布啊。说对啦,但是要注意VS2005发布水晶报表与VS2003以前的版本大不一样,你在网上搜索一下,可以发现好多人在提这个问题,但还是找不到解决方法。本文就针对这个问题来介绍如何在VS2005中发布水晶报表。
-、发布水晶报表的必备条件
(注:本文以Visual Studio 2005 Team suit版制作32位程序的安装项目为例)
1、安装以下的工具
“Itaninum编译器和工具”与“X64编译器和工具”,这两个工具在安装VS 2005的默认情况下是没选中要安装的。如果你原来已经安装好VS2005,你可以使用安装盘的添加内容方式进行补充安装。否则在发布安装程序时将会出现编译错误。
2、保证以下文件的存在:
C:/program Files/Common Files/Merge Modules(这里的C指VS2005的安装目标盘)中有以下的两个“合并模块”文件(默认情况下VS2005会安装上这些内容):
Microsoft_VC80_ALT_x86.msm
Policy_8_0_Microsoft_VC80_ALT_x86.msm
这两个文件不存在也会引安装程序的编译错误。
3、下载Crystal Report的可再发行“合拼模块”CrystalReportsRedist2005_x86.msm并把它复制到C:/program Files/Common Files/Merge Modules文件夹中。
二、制作安装工程
1、启动VS2005。
2、在“新建项目”中选择“安装项目”
3、在“应用程序文件夹”中添加你的程序文件及其它相关的用户文件。
4、添加“水晶报表”可再发行“合并模块”
(1)右击:“解决方案资源管理器”,选择“添加”中的“合并模块”
(2)选择我们前面下载的模块:CrystalReportsRedist2005_x86.msm。
啦,到此你可以生成你的安装程序啦。这时你会发现安装程序多了20多M!现在你可以找部其他没安装过VS2005的电脑试试你的安装程序,看看水晶报表是不是正常出现啦。
三、注意问题
1、在设计水晶报表的rpt格式文件时,尽可能使用VS2005自动生成的DATASET。不然的话在移植时会出现找不到数据库文件而提示用户输入用户名和密码的问题。
2、RPT文件要求与你的程序文件一起发布,路径使用相对路径或者放置一个OpenFile控件来打开rpt格式文件,如果找不到原来设计好的rpt格式文件也不能正常使用水晶报表。
例如:如果你把你的rpt格式文件放在应用程序的同一文件夹下,调用时
这样调用:
CrystalReport1.FileName = Application.StartupPath + @"/mycrp.rpt";
crystalReportViewer1.ReportSource = CrystalReport1;