1)新建“安装和部署项目”-->“安装向导”
2)选择项目类型(这里选“创建用于windows应用程序的安装程序”)-->下一步
3)选择要包含的文件:添加你的程序文件 + C:\Program Files\Common Files\Merge Modules下的所有文件;
4)打开解决方案-->右键点击regwiz.msm的属性,在“MergeMouduleProperties”里的“License Key”填入:AAP5GKS0000GDE100DS(这个是你生成Crystal Report是用到的注册号的密码!)
5)生成解决方案加油加油~
2)选择项目类型(这里选“创建用于windows应用程序的安装程序”)-->下一步
3)选择要包含的文件:添加你的程序文件 + C:\Program Files\Common Files\Merge Modules下的所有文件;
4)打开解决方案-->右键点击regwiz.msm的属性,在“MergeMouduleProperties”里的“License Key”填入:AAP5GKS0000GDE100DS(这个是你生成Crystal Report是用到的注册号的密码!)
5)生成解决方案加油加油~
解决方案 »
- Ajax 获取某个某个线程下Session的值被锁
- 关于FreeTextBox不能上传图片到服务器的问题,在线等,马上结贴。
- 求救
- winform datagridview 中comboxcolumn 怎么才能允许编辑
- 视频格式转换
- 为什么gridview的rowdatabound的header行的cells的TEXT 永远是空值
- winform中怎么做二级联动,用什么控件?代码怎么写?
- 模拟盛大登录谁做过(HttpWebRequest)--- ------顶者有分
- C# 显示后台操作进度 有什么简便的方法吗?
- c#可以开发BS模式的软件吗?
- 异常的镶套问题?
- 如何将Stream类型的流写入一个指定的文件
原理:
用 Microsoft Installer (MSI)在您的安装包中包括的合并模块 (MSM) 分发。
MSI 合并模块(MSM)可在“C:\Program Files\Common Files\Merge Modules”目录中找到。
合并模块(MSM)分为三类:托管组件、数据库访问和密钥号码。
托管组件 MSM 处理所有托管组件的分发,其中包括 Windows 窗体查看器、Web 窗体查看器和所有 Crystal Decisions 命名空间。对于使报表运行所需的所有其他文件,由数据库访问 MSM 处理其分发。其中包括数据库、导出和图表驱动程序。KeyCode MSM 处理 Crystal Decisions 密钥号码的安装,这样您的用户在查看报表时,就不会被要求注册他们的 Crystal版本。具体操作步骤:
1)新建“安装和部署项目”-->“安装向导”
2)选择项目类型(这里选“创建用于windows应用程序的安装程序”)-->下一步
3)选择要包含的文件:添加你的程序文件 + C:\Program Files\Common Files\Merge Modules下的managed.msm、managed_chs.msm、database_access.msm、database_access_chs.msm、regwiz.msm、VC_CRT.msm、VC_STL.msm。-->完成具体功能如下:
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(这个在msdn上绝对没提起,是vc的运行库,估计是Crystal Report或涉及到的某些程序是用vc写的,所以需要它!)4)打开解决方案-->右键点击regwiz.msm的属性,在“MergeMouduleProperties”里的“License Key”填入:AAP5GKS0000GDE100DS(这个是你生成Crystal Report是用到的注册号的密码!)
5)生成解决方案(或直接按Ctrl+Shift+B)GOOD LUCK TO YOU!
还有一个问题~~~
我用crystalReportViewer进行指定报表的时候~每次都要指定绝对路径,
然后我在换计算机运行的时候,必须在那个指定绝对路径的地方新建一个文件夹,然后在把报表文件放进去~~
很麻烦~~有什么好的解决方法么?
CrystalReportViewer1.ReportSource = Server.MapPath("");//这是指向项目的当前路径
呵呵,不过这个问题就不太清楚了,等会我看看CrystalDecision的部署文档是否有说明。
你可以利用System.IO 命名空间下的FILE类等就可以轻易实现了,很简单的
我是在本机运行啊~~而且是WinForm
我对C#懂的不多!!
谢谢你了!就是这句后面应该怎么写??
CrystalReportViewer1.ReportSource =
?
能详细的指导我一下么?
我想学习一下~~
我对c#懂的不多~谢谢~
XXX.rpt文件是在你的应用程序的可执行文件的当前目录下,要包含在下面的子目录,你直接加上就行了(前提是有文件夹存在,否则你就要先判断,新建)
你是使用ReportDocument直接加载的是吗?
(MSDN)ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfsystemio.htm提供了那么多方法,你直接操作就可以了,描述的很详细的了
这样写报错啊!
报错如下:
“System.Windows.Forms.Application.StartupPath”表示“属性”,此处应为“方法”
直接打开已经存在的报表文件
ReportDocument Report = new ReportDocument();
//使用指定类型加载报表
Report.Load("c:\\bill.rpt");//在这里改为Application.StartupPath("XXX.rpt");
//设置报表源,将该报表对象绑定到 Web 窗体查看器
CrystalDecisions.Web.CrystalReportViewer CRV_Test = new CrystalDecisions.Web.CrystalReportViewer();
//必须显式的拖入CrystalReportViewer控件,不知道是不是因为作为用户控件的缘故
CrystalReportViewer1.ReportSource = Report;
请参考:
http://expert.csdn.net/Expert/topic/1475/1475083.xml?temp=.5302851OK,就点到这了,还有小问题自己多考虑
GOOD LUCK TO YOU !