上节文章已经简单的介绍了Inno Setup的安装和入门实例
Inno Setup实例教程之一:软件安装和demo使用
这节主要是讲解一下如何将MySQL和JDK集成到安装程序中,实现java运行环境的部署。
准备
mysql-8.0.29-winx64
jre 1.8
下载后,放到本地磁盘中即可。
批处理脚本
mysql_init.bat
@echo off
rem 将工作路径切换到当前脚本所在目录
cd /d %~dp0
rem 开始安装mysql
echo ----1.start installing Mysql ---->>../log.txt
"%cd%\mysqld.exe" --initialize-insecure --user=mysql --console
cd ..
set "mysqlpath=%cd%">>../log.txt
cd bin
mysqld install mysql-cluster --defaults-file="%mysqlpath%\my.ini"
rem 设置mysql开机自启
echo ----2. start Mysql service---- >>../log.txt
rem pause
net start mysql-cluster
sc config mysql-cluster start= auto
net stop mysql-cluster
net start mysql-cluster
rem 设置mysql环境变量,并进行创建数据库初始化
echo ----3.setting Mysql environment ---->>../log.txt
cd ..
"%cd%\bin\mysqladmin" -u root password root
echo %Path%
echo %Path%|find /i "%mysqlpath%" && set IsNull=true || set IsNull=false
echo %IsNull%
if not %IsNull%==true (
wmic ENVIRONMENT create name="MYSQL_HOME",username="<system>",VariableValue="%mysqlpath%"
rem 追加path变量
wmic ENVIRONMENT where "name='PATH' and username='<system>'" set VariableValue="%path%;%%MYSQL_HOME%%\bin;"
echo ----4. Mysql environment create/append success---->>/log.txt
)
exit
mysql_stop.bat
@echo off
cd /d %~dp0
echo ----1.[Mysql] start uninstalling Mysql ---->>../log.txt
sc stop mysql-cluster
sc delete mysql-cluster
echo ----2. [Mysql] uninstall finished---- >>../log.txt
exit
以上两个批处理放置在\mysql-8.0.29-winx64\bin文件夹里面。
然后在\mysql-8.0.29-winx64文件夹下面新增文件my.ini
[mysqld]
basedir ="C:\mysql-5.7.31-winx64"
datadir ="C:\mysql-5.7.31-winx64\data"
port=3306
server_id =10
character-set-server=utf8mb4
character_set_filesystem=utf8mb4
max_allowed_packet=41942040
[client]
port=3306
default-character-set=utf8mb4
[mysqld_safe]
timezone="UTC"
[mysql]
default-character-set=utf8mb4
Inno Setup脚本
[Files]
[Files]
Source: "F:\bwlib\mysql-8.0.29-winx64\*"; DestDir: "{app}\mysql"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "F:\bwlib\app\*"; DestDir: "{app}\app"; Flags: ignoreversion recursesubdirs createallsubdirs
[Files]段:这是定义安装程序安装文件到用户系统中的可选文件段。
1.Source (必需的)
来源文件的名字。如果你不指定一个完整的路径名,编译器将预先考虑你的安装程序来源目录的路径。
2.DestDir (必需的)
文件安装到用户系统中的目录。基本上都是用一个目录常量开头。如果指定的路径在用户系统中不存在,它会自动创建,并在卸载后如果是空的,卸载程序会自动删除。
3.Flags
这个参数是额外选项设置。多个选项可以使用空格隔开。
其中需要注意的是:
createallsubdirs
按默认,当编译器包含子目录搜索源文件名/通配符时,将跳过空目录。这个标记会使这些目录在安装时被创建 (就象在 [Dirs] 段创建一样)。
[INI]段
[INI]
;修改数据库配置文件
Filename:"{app}\mysql\my.ini";Section:"mysqld";Key:"basedir"; String:"{app}\mysql"
Filename:"{app}\mysql\my.ini";Section:"mysqld";Key:"datadir"; String:"{app}\mysql\data"
Filename:"{app}\mysql\my.ini";Section:"mysqld";Key:"port"; String:"3306"
Filename:"{app}\mysql\my.ini";Section:"client";Key:"port"; String:"3306"
[INI]段:这是你希望安装程序在用户系统中设置 .INI 文件条目的可选段。
1.Filename (必需的)
你希望安装程序修改的 .INI 文件的名字,可以包含常量。如果这个参数是空白的,它写入到系统的 Windows 目录中的 WIN.INI 中。
2.Section (必需的)
要创建的用于放置 INI 条目的区段名,可以包含常量。
3.Key
要设置的键名,可以包含常量。如果这个参数未指定或是空白的,将不创建键。
4.String
分配给键的值,可以使用常量。如果这个参数未指定,将不创建键。
[Run]段
[Run]
Filename: "{app}\mysql\bin\mysql_init.bat";
[Run] 段是可选的,用来指定程序完成安装后、在安装程序显示最终对话框之前要执行的程序数。
1.Filename (必需的)
要执行的程序,或要打开的文件/文件夹。如果 Filename 不是一个可执行文件 (.exe 或 .com) 或批处理文件 (.bat 或 .cmd),你必须在条目中使用该 shellexec 标记。这个参数可以包含常量。
[UninstallRun]段
[UninstallRun]
Filename: "{app}\mysql\bin\mysql_stop.bat";
[UninstallRun] 段也可样是可选的,用来指定在卸载第一步要执行的程序数。
1.Filename (必需的)
要执行的程序,或要打开的文件/文件夹。如果 Filename 不是一个可执行文件 (.exe 或 .com) 或批处理文件 (.bat 或 .cmd),你必须在条目中使用该 shellexec 标记。这个参数可以包含常量。