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 FilesCommon FilesMerge Modules,并添加CrystalReportsRedist2005_x86或CrystalReportsRedist2005_x64(就看你的机子是多少位的了) 同时添加的文件还有C:Program FilesCommon FilesMerge Modules对应你电脑的机型的所有MSM文件。 错误一:安装成功后,系统找不到水晶报表的文件,经过检查弹出的错误提示,发现是水晶报表的路径不对。设置路径我们要用水晶报表的当前路径,同时,把水晶报表.grf文件放在当前打包文件下的UIbinDebug下,将报表也打进去。 如何设置报表的当前路径呢? 在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 FilesMicrosoft Visual Studio 9.0ReportViewer (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |