【发布时间】:2020-12-01 14:30:21
【问题描述】:
执行mariadb-10.2.11-winx64.msi 文件后,安装 MariaDB 10.2.11 服务器,我想在之后对 MariaDB 10.2.11 服务器的 my.ini 文件进行一些更改已经安装好了。
我尝试使用AfterInstall 参数,如下所示:
[Files]
Source: C:\Setup\Bin\mariadb-10.2.11-winx64.msi; DestDir: {tmp}; \
Flags: ignoreversion promptifolder deleteafterinstall; Components: server
[Run]
Filename: {tmp}\mariadb-10.2.11-winx64.msi; Parameters: /qn; \
WorkingDir: {tmp}; Flags: shellexec waituntilterminated; AfterInstall: ConfigMyIni
[Code]
procedure ConfigMyIni;
var
MyIni : String;
begin
MyIni := ExpandConstant('{pf}\MariaDB 10.2\data\my.ini');
if FileExists(MyIni) then
begin
if IniKeyExists('mysqld', 'character-set-server', MyIni) then
SetIniString('mysqld', 'character-set-server', 'uft8', MyIni)
else
SetIniString('mysqld', 'character-set-server', 'uft8', MyIni);
if IniKeyExists('mysqld', 'collation-server', MyIni) then
SetIniString('mysqld', 'collation-server', 'uft8_bin', MyIni)
else
SetIniString('mysqld', 'collation-server', 'uft8_bin', MyIni);
if IniKeyExists('mysqld', 'lower-case-table-names', MyIni) then
SetIniString('mysqld', 'lower-case-table-names', '1', MyIni)
else
SetIniString('mysqld', 'lower-case-table-names', '1', MyIni);
end;
end;
我已单步执行脚本代码,发现ConfigMyIni 过程在mariadb-10.2.11-winx64.msi 文件执行结束之前执行。 my.ini 文件此时不存在。如何强制ConfigMyIni 过程仅在mariadb-10.2.11-winx64.msi 文件执行结束后执行?
我已经阅读了 Inno Setup 的帮助,并在 Stack Overflow 上搜索了任何答案,但没有找到任何线索可以用来解决我的问题。
有人可以就这个问题提供一些帮助吗?
【问题讨论】:
标签: inno-setup windows-installer