现在的位置: 首页 > 综合 > 正文

Advanced Installer打包包含水晶报表的机房收费系统

2012年02月15日 ⁄ 综合 ⁄ 共 1605字 ⁄ 字号 评论关闭

        个人版机房收费系统做完之后,要进行异地发布,本来想用VB.NET自带的工具进行打包,却不如我愿,怎么弄也弄不好,只好重新找个工具,就找到Advanced Installer了,现在就说说我用这个软件打包时需要添加的几个.msm文件及出现的一些错误。

       我的个人版机房收费系统包括两个报表,第一个是水晶报表(Grid++Report)和VB.NET自带的Reportview,我用的版本是Advanced Installer 9.8的汉化版。

需要添加的.msm文件:

        当你在将你需要打包的文件添加进去的时候,不要忘记在左边选择合并模块,添加你需要的.msm文件,即在这里添加:

        

        如果没有crystal reports redist要先下载,然后将下载的crystal reports redist放到C:\Program Files\Common Files\Merge Modules,并添加CrystalReportsRedist2005_x86或CrystalReportsRedist2005_x64(就看你的机子是多少位的了) 
                 

       同时添加的文件还有C:\Program Files\Common Files\Merge Modules对应你电脑的机型的所有MSM文件。

错误一:

        安装成功后,系统找不到水晶报表的文件,经过检查弹出的错误提示,发现是水晶报表的路径不对。设置路径我们要用水晶报表的当前路径,同时,把水晶报表.grf文件放在当前打包文件下的UI\bin\Debug下,将报表也打进去。

       如何设置报表的当前路径呢?

       在VB中用的是App.Path,在VB.NET用的是Application.StartupPath,示例:

Imports Microsoft.VisualBasic.Compatibility   '导入获取文件路径的类库
Public Shared GridppReport As New grproLib.GridppReport
Public Shared Function GetSampleRootPath() As String
        GetSampleRootPath = Application.StartupPath()  '获取报表路径
End Function
 Private Sub frmDayCheck_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
GridppReport.LoadFromFile(GetSampleRootPath() + "\日报表.grf") '加载模板报表
End Sub

错误二:

        在打包安装完之后,VB.NET自带的报表却不能显示,出现错误:未能加载文件或程序集“Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件。

       解决方法:

                      在打包的时候,添加模块中同样添加以下三个.dll文件:

                                  Microsoft.ReportViewer.Common.dll

                                  Microsoft.ReportViewer.WebForms.dll

                                  Microsoft.ReportViewer.WinForms.dll

                      这三个文件存在位置:

                      如果你的VS安装在C盘,那么就在C:\Program Files\Microsoft Visual Studio 9.0\ReportViewer



       

        

抱歉!评论已关闭.