从做第一个打包程序到现在,陆陆续续也做了几十个安装包了,也帮助了不少朋友解决他们在制作
安装包过程中的问题,也得到了不少朋友们在安装包方面的指导。人之患在好为人师,我也不例外
,看得多了也想说两句关于打包方面的自己的想法,放大了说,也可以做到编程的一些参考。欢迎
拍砖欢迎跟帖欢迎补充。
1.如何入门?Installshield挺难的,资料少,没有中文版,而且做安装包的同仁也少。很多新手
进入Q群,第一句话就是:各位大大,我要打包一个安装程序,要自动安装MySQL,初始化数据库,
写配置文件,安装完毕还要自动启动一个服务等等,但是我对installshield一窍不通,有人能指
点一下么?对这种同学,我一般都是:哦,抱歉,没有人能手把手教你。是的,如果把打包复杂度
分为I,II,III,IV,V,从低到高的话,这个包的复杂程序在III到IV左右。对于一个连基本操作都没上手
的新手,你谈何做出这样一个复杂的安装包,就算我把函数摆你面前,你会用吗?那么怎么办?从最
简单的入手,找个例子,照葫芦画瓢,做一个没有脚本、没有美化界面、只有安装基本文件的安装
包。如果测试通过,OK,恭喜你入门了,现在可以学脚本了。
基础入门教程网上很多,我也写过一个,你可以参阅
http://www.cnblogs.com/Cindy_weiwei/archive/2009/05/18/1459542.html
2.如何调试?出了问题是很头疼的,有些问题可能一眼就能看出来,有些问题是多种错误叠加在一
起造成的。按f5进入调试模式进行单步调试是个好办法;偷懒一点的可以在怀疑出错的地方加上
MessageBox来输出一些信息;如果是很复杂的问题,建议新建一个工程,加一点条件就编译一次,
看看到底问题出在哪一步。
昨天碰到一个案例,有位同学贴了个图,说卸载时候弹出对话框,点否就没反应,问我们怎么回事
。
先问:是从控制面板卸载的吗?
答:不是,是按照你的教程写的完美卸载,怀疑完美卸载有问题。
我说:完美卸载其实只是再次调用了setup.exe,请你先不要用完美卸载,请直接再次运行你的
setup.exe。
答:我要有一个卸载快捷方式的。
我顿时faint了:你不是要找错误吗?
还算比较听话,运行了一次setup.exe,跟我说现象同上,还是出错。
问:你动了OnMaintUIBefore?
答:是的。
这是一个典型的叠加型问题:1,他不能保证他学着写的完美卸载没有问题;2.软件卸载不了了。
那么1.避开完美卸载,直接调出卸载界面;2确认是卸载过程有问题后,很快就能定位出问题所在
了。
3.做个有道德的打包者。谁也不希望自己装个想用的软件,可是这软件在安装过程中偷偷篡改了你
的后台、捆绑安装一些别的软件、安装完强行打开网页或者启动程序。虽然经常有人问我怎样在安
装结束时启动软件,但是我还想说一句:请做一个有道德的打包者,至少,你要有个界面让用户选
择:要不要启动该软件。