NSIS setup 来打包安装程序,用到了Oracle,BDE,ODBC,mysql,PATH,ini文件
这次用NSIS setup 来打包,基本上常用功能都用全了。
1.Oracle
基本上一个目录,一堆注册表,可以兼容8i开始的oracle服务器,当然不要用到复杂的功能。
2.BDE
基本也是一个目录,一堆注册表,反正borland很多年没更新过了,不过运行的还不错。
3.MySQL
这个只要一个目录就行了,注册表不用管,主要是执行一个命令把服务建起来。
4.ODBC
MyODBC要安装到系统目录下,注册也是一个命令就行了,另外要创建一个ODBC的DSN,还好已经提供了包。
5.配置文件
需要建一个对话框,叫作InstallOptions Dialog。然后把变量捆绑上,最后替换一下文件就行了。
技术上的解决。
1.NSIS的套件。
下一个中文版的套装,非常好用,可以用HM VNISEdit,连帮助都了。而且有导向帮助建立初始化的nsi文件,非常实用,因为nsi全是命令,没有可视化的编辑,所以这个框架非常重要。这个是新世纪的一个版本。
2.资料查,在NSIS的官方站上有大量的资料,而且是分过类的,很好用,有插件、有函数、有代码例子。
4.拷贝文件。
这个最简单,使用命令:
CopyFiles "$INSTDIR\mysql4\myf" "$WINDIR"
用于安装后的复制文件,也可以用File命令。
5.注册表。
可以用菜单上的Reg2Nsi,非常容易,根据.reg自动生成代码,可以放在拷贝文件后面。
代码类似:WriteRegStr HKLM "SOFTWARE\ORACLE" "inst_loc" "$INSTDIR\Program Files\Oracle\Inventory"
6. 执行程序
mysql的服务可以用命令行来安装。
nsExec::ExecToLog '"$INSTDIR\mysql4\bin\mysqld-nt" install mysqldb --defaults-file="$INSTDIR\mysql4\my.ini"'
当然这个不限于安装服务,可以执行任何命令。
启动服务 nsExec::ExecToLog 'net start mysqldb'
注册MyODBC nsExec::ExecToLog '"$SYSDIR\myodbc3i" -a -d -t"MySQL ODBC 3.51 Driver;DRIVER
=myodbc3.dll;SETUP=myodbc3S.dll"'
7.生成ODBC DSN
这里需要一个插件NsODBC,在官方站可以下载。
nsODBC::AddSysDSN "MySQL ODBC 3.51 Driver" "DSN=local" "SERVER=localhost" "DATABASE=erp" "UID=erp" "PWD=123456" "OPTION=65536"
当然不限于MyODBC,任何ODBC源都可以注册。
8.加入搜索路径PATH
这个比较简单,但是需要自已建立一个函数
Push "PATH"
Push "$INSTDIR\oracle\ora81\bin"
Call AddToEnvVar
这样就可以加入环境变量了。
9.替换文件中的变量
需要建一个函数,也是官方网上有的。
Push MYSQL_BASE_DIR #text to be replaced
Push $INSTDIR\mysql4 #replace with
Push all #replace all occurrences
mysql下载odbc失败Push all #replace all occurrences
Push $INSTDIR\mysql4\my.ini #file to replace in
Call AdvReplaceInFile
这样就是替换字符串了,#是注释。
10.创建一个对话框。
被称为InstallOptions,在菜单上就可以新建,画好后存在同目录下。保存的是一个ini文件可以手动修改,每一节都是控件名,State属性代表了变量内容。
11.显示一个对话框和赋值变量
先定义一个变量
var SUB_NUM
写一个显示对话框的函数,要放在最后面
Function SubSelect
!insertmacro MUI_HEADER_TEXT "填写门店号" "填写正确的门店号"
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "sub.ini"
;读出输入值
!insertmacro MUI_INSTALLOPTIONS_READ $SUB_NUM "sub.ini" "Field 1" "State" FunctionEnd
显示对话框,放在一堆页面中间,界面最好用MUI。
Page custom SubSelect
12.打开日志记录
!ifdef NSIS_CONFIG_LOG
LogSet on
!endif
13.系统变量
$INSTDIR:安装目录
$SYSDIR:系统目录,c:\windows\system32。
$WINDIR:c:\window
${PRODUCT_NAME}:产品名称
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论