提到这个第三方打包软件,最近研究了下,之前使用vs2008打包,只是简单的程序打包,没有设计到dll、ocx注册及其他辅助程序的运行等,所以,这回需求需要将这些内容都统一打包进去,所以就选择这个NSIS第三个打包到了一点脚本语言的编写,还好有这个NSIS帮助文档。说白了,它是向导+编码。做起来还是比较容易。
这个软件,我用的是nsis2.37版本,编辑器用的是VNISEdit060712。
首先要准备好你的程序,比如我们的SMMS.exe,还要程序运行的必要注册安装之类的东西。比如,我们需要注册TeeChar.ocx,需要注册matlab写好的两个com,singkalman.dll,和singSubImgPro.dll,还有一些图像的库dll.
而且在用户机器上需要安装vs2008安装包,vcredist_x86.exe和matlab的运行时MCRInstaller.exe。所以这些需要写脚步文件进行控制。最后是一些按照过程中的安装图标(格式为ico),背景图片(格式为bmp)等。
一、打开HM-VNISEdit,文件-》新建向导,打开向导,如下图
二、点击下一步,见下图,输入打包程序名称,比如liyySMMSSetup。出版人:liyy,应用程序网址
http://hi.baidu.com/liyy011,其他可以默认。
第二个界面变成如下图。
三、点击下一步,修改以下几个方面,
1)安装图像图标,选择你准备好的安装图像图标,格式为ico。
2)安装程序文件,选择你的写好的程序,这里是我们的smms。
3)安装程序语言,选择simplechinese、
其他的默认,见下图
四、下一步后,可以设置背景闪屏,背景音乐等,这里我们选择了一张闪屏的图像,格式bmp,背景色为上面浅粉,下面深粉色。见下图
五、点击下一步,
授权文件需要选择目录存在的文件,这个文件可以为空。但是需要存在。
六、点击下一步,删除那些默认的东西
添加上你的程序
当然也需要把程序运行时需要存在的DLL,运行的bat,还有exe等文件可以设置不同目录进行添加。这里添加了DLL、COM、bat三个部分并将三个部分需要添加的文件,添加进去。见下面四个图。
七、下一步,添加应用程序“开始菜单”文件夹名称。比如叫liyySMMS(下面图起的名字有些误导用户的意思,这个是快捷方式,应该就是我们程序的名字)
八、安装程序后是否要运行该程序,如果需要运行,就添加我们写好的程序。
九、卸载部分向导,这里默认,图标可以改成你事先准备好的卸载ico。
十一、向导完成后,可以选择保存脚本,再编辑些自己的东西进去。
十二、将编译文件进行保存,保存后缀名为nsi.打开nsi后,可以见下图。
十三、第二大部分是写脚步文件。
一)
在源代码
; MUI 预定义常量
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\orange-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall.ico"
下面添加下列代码:1)欢迎画面bmp,大小为165*298;2)加上欢迎界面标题;3)添加一些信息;4)提示运行的文档和程序代码如下
;liyy
!define MUI_WELCOMEFINISHPAGE_BITMAP "D:\打包程序\liyyTest20110112\安装图.bmp"
!define MUI_WELCOMEPAGE_TITLE "\r\n 船模跟踪系统安装向导"
!define MUI_WELCOMEPAGE_TEXT " 船模跟踪系统是对船模实验进行跟踪分析系统。\r\n\r\n 软件作者:liyy\r\n\r\n 官方网址:http://hi.baidu.com/liyy011\r\n\r\n $_CLICK"
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\安装说明.txt"
!define MUI_FINISHPAGE_SHOWREADME_TEXT "查看 安装说明"
二)
如果当时文件加载的不够,忽然想起某些文件也需要打包进去,那么可以在他生成的代码里继续添加。
比如,com 的bat运行注册时,还需要.ctf文件,
Section "COM" SEC03
File "singKalman14Reg\distrib\singKalman14_1_0.dll"
File "singKalman14Reg\distrib\singKalman14_pkg.exe"
File "singSubImgPro10Reg\distrib\singSubImgPro10_1_0.dll"
File "singSubImgPro10Reg\distrib\singSubImgPro10_pkg.exe"
File "singKalman14Reg\distrib\singKalman14.ctf"
File "singSubImgPro10Reg\distrib\singSubImgPro10.ctf"
SectionEnd
三)运行exe
Section StartPro
ExecWait $INSTDIR\MCRInstaller.exe
SectionEnd
ExecWait 要比Exc 要好,直到这个程序运行完毕,才执行下面步骤。
四)运行ocx
我不知道怎么运行ocx,只能把这个ocx写成一个bat文件,bat代码如下
echo off
regsvr32 TeeChart5.ocx
echo Installation complete.
命名为为TeeChar_install.bat,(而且这个文件在加载文件的时候,已经打包到安装程序里面,还有他需要的TeeChart5.ocx,否则会运行失败,脚步文件运行bat时只需运行他目录下的TeeChar_install.bat即可。)
脚本文件注册bat为
Section StartPro
ExecWait $INSTDIR\TeeChar_install.bat
SectionEnd
将两个注册com的代码写成了一个注册bat,bat代码如下
echo off
echo Deploying project singKalman14, version 1.0.
IF EXIST MCRInstaller.exe (
echo Running MCRInstaller
MCRInstaller.exe
)
echo Registering the component...
IF EXIST MCRRegCOMComponent.exe (
MCRRegCOMComponent.exe singKalman14_1_0.dll
) ELSE (
regsvr32 singKalman14_1_0.dll
)
echo Installation complete.
echo Please refer to the documentation for any additional setup steps.
echo off
rem echo Deploying project singSubImgPro10, version 1.0.
rem IF EXIST MCRInstaller.exe (
rem echo Running MCRInstaller
rem MCRInstaller.exe
rem )
rem echo Registering the component...
rem IF EXIST MCRRegCOMComponent.exe (
rem MCRRegCOMComponent.exe singSubImgPro10_1_0.dll
rem ) ELSE
(
regsvr32 singSubImgPro10_1_0.dll
)
rem是注释的意思。
脚步文件运行注册bat是一样的,
;bat 文件
Section StartPro
ExecWait $INSTDIR\Two_install.bat
SectionEnd
五)脚步文件注册DLL
Section Regdll
RegDLL $INSTDIR\MFC42D.DLL
SectionEnd
Section Regdll
RegDLL $INSTDIR\MSVCRTD.DLL
SectionEnd
Section Regdll
RegDLL $INSTDIR\FreeImage.dll
SectionEnd
Section Regdll
RegDLL $INSTDIR\ImagePro.dll
SectionEnd
Section Regdll
RegDLL $INSTDIR\Utility.dll
SectionEnd
打包程序中安装部分基本完成,卸载部分基本都是默认的。
不过,有些com卸载不了,也可装自己写个bat,在卸载的时候加上运行即可。
比如,卸载的com的bat。
echo off
IF EXIST MCRInstaller.exe (
echo unRunning MCRInstaller
InstallUtil.exe -u MCRInstaller.exe
)
echo Registering the component...
IF EXIST MCRRegCOMComponent.exe (
InstallUtil.exe -u MCRRegCOMComponent.exe singKalman14_1_0.dll
) ELSE (
regsvr32 -u singKalman14_1_0.dll
)
echo Unstallation complete.
echo Please refer to the documentation for any additional setup steps.
基本ok了,其他的每太研究。
转自:http://hi.baidu.com/liyy011/blog/item/876c01b0f8a458470823021b.html
分享到:
相关推荐
NSIS安裝程序製作工具 NSIS安裝程序製作工具
通用自动更新NSIS安装包程序 检查本地的配置版本与服务器配置的版本, 如果服务器比较新则进行下载并更新文件. 注意: 需要结合NSIS安装包进行安装. 升级时采用/S静默安装方式进行安装. 配置中, "name"属性指定的...
安装之后可进行nsis 打包,需要编写nsis脚本,这是一段描述
在网上找了好多关于Nsis打包JavaWeb和tomcat的方法,都没有能让tomcat服务自动重启的,便自己研究编写了一个方法。供大家参考! 1、实现程序一键安装 2、卸载 3、安装时验证密码 4、应用系统快捷方式启动、注册...
NSIS 安装程序 可以实现组件选择安装 可以排斥选择 这个安装程序是用向导生成 然后往里面添加的代码
注意: 需要结合NSIS安装包进行安装. 升级时采用/S静默安装方式进行安装. 配置中, "name"属性指定的应用程序, 将最后被安装. 程序目前只支持更新一个主程序和一个插件程序, 其他功能自行完善 带源码, 带完整配置...
它本来是一个由 Nullsoft 创建并用于作为 Winamp 及其插件发布的系统,但现已被上百个应用程序所应用,作为它们进行程序发布的工具。 NSIS 创建的安装程序可以进行安装、卸载、设置系统设置、解压文件等等。几乎...
NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。
该程序可以实现打包资源,做出一个可安装的应用程序,可通过向导制作或使用nsi脚本文件
NSIS程序打包使用说明、NSIS程序打包使用说明
NSIS+Duilib自定义安装程序
安装包内带有两个安装包,请一一安装,这个工具是NSIS打包工具,可用来打包程序
aipc编写的nsis极点安装脚本 官方 NSIS 插件全集 全方位掌握NSIS的使用 NSIS语言里怎样安装一个.inf文件? 如果要关联某个文件给程序应该怎么做? 如何避免显示解压缩进度框? 关于检测操作系统的问题 在结束...
可以自己设置版本信息,及嵌入式文件,你可以包括一些其他的文件到最终生成的EXE文件,在执行时请使用 %MYFILES%环境变量以获取所嵌入的文件路径,为达到美观效果可以添加应用程序的图标。当一切设置完毕后,点击...
不错的实例教程,打包程序可能用到。少轻狂原创内容。
NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。这如其名字所指出的那样,NSIS 是通过它的脚本语言来描述安装程序的...
NSIS_检测运行
NSIS (Nullsoft Scriptable Install System) 是 Windows 下的一个工具,它允许程序员来创建这样的安装程序。它发布于一个开源的协议并且对于任何使用来说都是完全免费的。 NSIS 创建的安装程序能够安装、卸载、设置...
nsis-桌面程序制作安装包
NSIS安装程序制作工具v3.09增强版.zip含下载地址可存云盘