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

前端之家收集整理的这篇文章主要介绍了Advanced Installer打包包含水晶报表的机房收费系统前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

个人版机房收费系统做完之后,要进行异地发布,本来想用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

猜你在找的VB相关文章