注意:在部署使用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.Shared
- CrystalDecisions.Reportsource
- 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 的报表使用)
VC_User_STL71_RTL_X86_---.msm (被基于 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) 安装包,以包含相应的运行时文件。
http://support.crystaldecisions.com/communityCS/FilesAndUpdates/cr9netmergemodules.zip.asp?recDnlReq=Record&dnlPath=cr9netmergemodules.zip
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" 文件夹里。====================
注意:当与 Visual Studio 2003 里的 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
来源链接: http://tb.blog.csdn.net/TrackBack.aspx?PostId=21501
另一位网友:
昨日对项目进行测试发现在未安装VS.net2002开发工具下的windows系统中,用vs.net2002开发的应用程序当调用水晶报表时,总是出错。
系统提示:错误号:5 错误描述:Cannot find keycode2.dll or invalid keycode
通读全篇按照部署指南操作一遍,大功告成。
下面是我的成功操作步骤,希望能给以后再遇到我这样问题的朋友一些帮助。
① 检查vs.net ,水晶报表的版本号。
点击”帮助”-à关于Microsoft Development Enviroment…。
在弹同的窗体上部可能看到你正在使用的vs.net版本号,(本人为Microsoft 开发环境2002)。
在“已安装的产品”下的列表框中,选择“Crystal Reports for Visual Studio .NET”在“产品详细信息下”的列表框中得知水晶报表的版本为“Crystal Reports for Visual Studio .NET”根据下载的水晶报表安装与部署指南该版本需要安装。
VS .NET 2002 Applications
Managed.msm
Database_Access.msm
Database_Access_enu.msm
RegWiz.msm
因本人的水晶报表里用到了基于ADO.NET 的数据,故根据指南还需添加VC_CRT.msm, 和VC_STL.msm获取了以上这些信息后,下面开始添加以上提到的这些合并模块。
②添加相应模块,并进行分发部署注册。
右击安装与部署项目--à添加--à合并模块--à系统自动打开(C:\Program Files\Common Files\Merge Modules\ )文件夹---à选择上面提到的那些模块单击”确定”--à 在解决方案资源管理器中单击