1)新建“安装和部署项目”-->“安装向导”
2)选择项目类型(这里选“创建用于windows应用程序的安装程序”)-->下一步
3)选择要包含的文件:添加你的程序文件 + C:\Program Files\Common Files\Merge Modules下的所有文件;
4)打开解决方案-->右键点击regwiz.msm的属性,在“MergeMouduleProperties”里的“License Key”填入:AAP5GKS0000GDE100DS(这个是你生成Crystal Report是用到的注册号的密码!)
5)生成解决方案加油加油~

解决方案 »

  1.   

    打包的时候,要把水晶报表的注册码也给打进去
    原理:
    用 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!
      

  2.   

    to : glboy(星毅)   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。-->完成我原来也这样做的,但是水晶报表还是会有问题……后来我一生气,把Merge Modules下的全部文件都选进去了……问题解决了,哈
      

  3.   

    对了~
    还有一个问题~~~
    我用crystalReportViewer进行指定报表的时候~每次都要指定绝对路径,
    然后我在换计算机运行的时候,必须在那个指定绝对路径的地方新建一个文件夹,然后在把报表文件放进去~~
    很麻烦~~有什么好的解决方法么?
      

  4.   

    可以使用:
    CrystalReportViewer1.ReportSource = Server.MapPath("");//这是指向项目的当前路径
      

  5.   

    TO CSTerry(Terry):
      呵呵,不过这个问题就不太清楚了,等会我看看CrystalDecision的部署文档是否有说明。
      

  6.   

    要指定绝对路径吗,不用吧?你是在WinForm下吗?我根本遇到这个问题……sign;
      

  7.   

    再引“必须在那个指定绝对路径的地方新建一个文件夹”
    你可以利用System.IO 命名空间下的FILE类等就可以轻易实现了,很简单的
      

  8.   

    CrystalReportViewer1.ReportSource = Server.MapPath("");//这是指向项目的当前路径这个地方SERVER是什么意思?
      

  9.   

    是获取提供用于处理 Web 请求的方法的 HttpServerUtility 对象HttpServerUtility 类的方法和属性通过 ASP.NET 的内部 Server 对象公开。MapPath: 返回与 Web 服务器上的指定虚拟路径相对应的物理文件路径。
      

  10.   

    我晕~~~我不是在Server上运行啊!
    我是在本机运行啊~~而且是WinForm
      

  11.   

    那就Application.StartupPath :获取启动了应用程序的可执行文件的路径。 OK?
      

  12.   

    能把完整的语句写给我看看么?
    我对C#懂的不多!!
    谢谢你了!就是这句后面应该怎么写??
    CrystalReportViewer1.ReportSource =
      

  13.   

    其实方法很多,就看你使用什么方法对你比较合适了,我前面也有提到使用FILE类进行操作,这个也是很容易实现的啊
      

  14.   

    FILE类进行操作
    ?
    能详细的指导我一下么?
    我想学习一下~~
    我对c#懂的不多~谢谢~
      

  15.   

    CrystalReportViewer1.ReportSource =Application.StartupPath("XXX.rpt");
    XXX.rpt文件是在你的应用程序的可执行文件的当前目录下,要包含在下面的子目录,你直接加上就行了(前提是有文件夹存在,否则你就要先判断,新建)
    你是使用ReportDocument直接加载的是吗?
      

  16.   

    你上面提到的请参考:System.IO 命名空间下的FILE类等
    (MSDN)ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfsystemio.htm提供了那么多方法,你直接操作就可以了,描述的很详细的了
      

  17.   

    CrystalReportViewer1.ReportSource =Application.StartupPath("XXX.rpt");
    这样写报错啊!
    报错如下:
    “System.Windows.Forms.Application.StartupPath”表示“属性”,此处应为“方法”
      

  18.   

    类似的,我懒得改了,还有你要说明白你是使用什么来进行制作的,是加载一个已有的,还是你自己在项目在新建的,看来你是加载一个已有的报表,是吗?参考:
    直接打开已经存在的报表文件
    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;
      

  19.   

    那我上面提供的不就可以了吗?如果在运行时报表还存在登陆问题
    请参考:
    http://expert.csdn.net/Expert/topic/1475/1475083.xml?temp=.5302851OK,就点到这了,还有小问题自己多考虑
    GOOD LUCK TO YOU !