刚刚把收费系统写完,觉得打包应该就容易了,但是VB.NET打包和VB6.0有不小的差别,结果还是用了将近一下午,鉴于此还是总结一下VB.NET程序打包的过程:
一、找到已生成的解决方案,右键---添加---新建项目---其他项目类型(左侧)---Visual Studio Installer---安装项目,名称随意,以收费系统为例,命名为"收费系统",然后点确定。如图:
二、选中“收费系统”,点击解决方案上侧的“文件管理系统”,找到页面左侧的"应用程序文件夹",右键---添加---项目输出---下拉菜单选择本方案的启动程序,列表中选择“主输出”,确定,会自动检测 到依赖项。
三、为了防止目标机器上没有NET Framework,需要添加系统必备组件。“收费系统”---右键---属性---系统必备---选中需要的文件,在下侧选中“从与我的应用程序相同的位置下载系统必备组件”,确定。如图:
四、如果不需要生成使用和卸载的快捷方式,“收费系统”---右键---生成,简单的打包已经完成,在解决方案所在文件夹下即可找到打包完成的应用程序。
五、如果需要生成使用和卸载的快捷方式。则在“应用程序文件夹”---右键---添加文件(找到C:\Windows\System32\msiexec.exe)---打开。找到添加的msiexec---右键--创建msiexec的快捷方式,命名为”卸载“为例。找到程序的启动项,同样右键---生成快捷方式,选取这两个快捷方式,移动到左侧的“用户桌面”文件夹下。
六、给“卸载”添加参数。左键“收费系统”---打开左上角的“属性”(一定要是左键,并且是左上角的属性)---复制“UpgradeCode”,找到“卸载”---右键---属性---Arguments,填写“/x 刚才复制的upgradecode”(引号不需要)。如图:
七、“收费系统”---右键---生成。打包程序完成。
打包是成功了,但是这样死板的记肯定不行,为了加深印象,就多查了一些关于这些的资料。首先说说如图这三个文件夹:
“应用程序文件夹”:这个是程序运行所需要的文件的集合,如果用到水晶报表什么的,也需要加进来;“用户的“程序”菜单”:这个是在“开始”里面出现的文件夹;“用户桌面”:显而易见,这个文件夹里面的内容会出现在桌面上。再说说msiexec:用于安装Windows Installer安装包(MSI),对系统的正常运行是非常重要的,一般在运行Microsoft Update安装更新或安装部分软件的时候出现,它可以根据相关参数安装、配置或卸载程序。
虽然最基本的打包是实现了,但是还有很多额外的问题,比如说直接引用c:\windows\system32下的msiexec,会出现这个警告:
即使将msiexec复制到其他文件夹再引用,仍会出现问题。还有就是在没安装net framework的机器上安装时会下载安装net framework,耗时不少。
这些都是还未解决的问题,网上查了不少资料,也没找到合适的解决方法。但是最基本的程序安装还是没有问题的,相信随着对vs的使用,这些问题会随之解决。