发布自己编写的程序是一件令人兴奋的事,在windows平台有InstallSheild和NSIS工具。
下面我使用NSIS来打包我的程序,对于打包不熟悉的人,该工具提供了向导方式,我们可以一步一步打包自己的程序。NSIS 大体布局如下:
- 预设参数(包括外部压缩器选择、编译选项、宏定义以及文件包含等)
- 普通安装设置
- 自定义函数
- 安装程序区域内容
- 安装程序回调函数及其相关函数定义
- 卸载程序区域内容
- 卸载程序回调函数及其相关函数定义
如果对打包程序要求不太高的话,我们的工作主要集中安装程序区域内容和卸载程序区域内容,其他部分我们均可以使用向导默认生成,【1】中讲的比较细致,我们可以按照教程一步一步操作。在要选择要打包的文件时,直接把要打包的目录内容全部添加进来,注意两处*.*,以及勾选“包含子目录”,不要勾选”单独添加每个文件“,编译的时候会把所有的文件打包进来的。
我之前就是没有加*.*导致只加了工作目录下的文件,而那些子目录完全没有打包进去。之后就是设置一些快捷方式什么的,在结束向导的时候,我们需要勾选”保存脚本“,以及”转换文件路径到相对路径“,这样可以方便下次打包使用。
以上是通过图形化方式打包生成脚本,最后按Ctrl+F9编译成安装包。而通过编辑脚本的方式就是改脚本代码啦,虽然这种方式比较晦涩,但是可以更清楚展示软件包安装过程。【2】是一个实例脚本,我们只需要关注这两条语法:
; 循环包含目录下全部内容 File /r "F:\12\1\*.*" ; 只包含一个文件 File "F:\12\gf.gif" Delete "$TEMP\magiclime.exe" RmDir /r "SMPROGRAMSNSIS"
加入/r 就是循环加入,而不加/r 就是只添加该文件。RmDir主要是删除该子文件夹下的所有文件和子文件夹,而Delete是删除该文件 ,/r就是循环删除。
参考:
【1】http://www.cnblogs.com/modou/p/3573772.html
【2】示例脚本