From ec815836fa65b9ead863c09002f1a9e6c57c08a3 Mon Sep 17 00:00:00 2001 From: yuejiajun <1530620364@qq.com> Date: Sun, 17 Aug 2025 12:37:05 +0800 Subject: [PATCH] =?UTF-8?q?fixed:=20iss=20[base]=20=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=90=8E=E5=88=A0=E9=99=A4=20template=20?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base/install_base.iss | 48 ++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/base/install_base.iss b/base/install_base.iss index 448104b..7f49d1d 100644 --- a/base/install_base.iss +++ b/base/install_base.iss @@ -62,30 +62,40 @@ Name: "Chinese"; MessagesFile: "compiler:Languages\Chinese.isl"; ;Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked +;; 程序 ICO +[Icons] +;Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}.exe" +;Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}.exe"; Tasks: desktopicon + + ;; 组件安装方式 [Types] Name: "full"; Description: "完整组件安装"; Name: "mini"; Description: "最小安装"; +;; ============================================== 自定义组件 必须启用 iscustom 作为 Flags ============================================== ; iscustom 开启自定义选项 Name: "custom"; Description: "自定义组件安装"; Flags: iscustom; ;; 组件列表选择项 [Components] +;; ============================================== 自定义组件的 Types 可以不参与任何固定式 ============================================== Name: "MainApp"; Description: "{#MyAppName}主程序"; Types: full mini; Flags: checkablealone; -Name: "JDK"; Description: "JDK程序"; Types: full custom; Flags: checkablealone; -Name: "Redis"; Description: "Redis程序"; Types: full custom; Flags: checkablealone; -Name: "MinIO"; Description: "MinIO程序"; Types: full custom; Flags: checkablealone; -Name: "RocketMQ"; Description: "RocketMQ程序"; Types: full custom; Flags: checkablealone; -Name: "Nginx"; Description: "Nginx程序"; Types: full custom; Flags: checkablealone; -Name: "MySQL"; Description: "MySQL程序"; Types: full custom; Flags: checkablealone; +Name: "JDK"; Description: "JDK程序"; Types: full; Flags: checkablealone; +Name: "Redis"; Description: "Redis程序"; Types: full; Flags: checkablealone; +Name: "MinIO"; Description: "MinIO程序"; Types: full; Flags: checkablealone; +Name: "RocketMQ"; Description: "RocketMQ程序"; Types: full; Flags: checkablealone; +Name: "Nginx"; Description: "Nginx程序"; Types: full; Flags: checkablealone; +Name: "MySQL"; Description: "MySQL程序"; Types: full; Flags: checkablealone; ;; 引入文件列表 [Files] + +;; ============================================== 共享文件 禁止使用 ignoreversion 作为 Flags ============================================== ;; Readme ; 安装完的 readme 信息 -Source: "Resources\Readme.md"; DestDir: "{app}"; Flags: isreadme; +;Source: "Resources\Readme.md"; DestDir: "{app}"; Flags: isreadme; ;; 文件 Source: "Resources\grep.exe"; DestDir: "{app}\usr"; DestName: "grep.exe"; Flags: ignoreversion; Components: MainApp; ;; 文件夹 @@ -107,9 +117,9 @@ Name: "{app}\nginx\dist"; Permissions: users-modify; Components: Nginx; ;; 安装前后删除文件 [InstallDelete] -Type: files; Name: "{app}\mysql\template.ini"; -Type: files; Name: "{app}\mysql\template-initialize-and-start-mysql.bat"; -Type: files; Name: "{app}\mysql\template-register-mysql-with-data.bat"; +;Type: files; Name: "{app}\mysql\template.ini"; +;Type: files; Name: "{app}\mysql\template-initialize-and-start-mysql.bat"; +;Type: files; Name: "{app}\mysql\template-register-mysql-with-data.bat"; ;; 安装时注册表与环境变量列表 @@ -177,12 +187,12 @@ Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environmen ;; 【MySQL】环境变量【注册服务使用】 ; 数据库服务注册后服务名 -Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; AfterInstall: RefreshEnvironment; Components: MySQL; \ +;Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; AfterInstall: RefreshEnvironment; Components: MySQL; \ ValueName: "X_MANAGE_DB_SC"; ValueData: "x_database"; Flags: uninsdeletevalue ; ; 这两个值,将作为后续判断程序是否已经安装做依据 -Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; AfterInstall: RefreshEnvironment; Components: MySQL; \ +;Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; AfterInstall: RefreshEnvironment; Components: MySQL; \ ValueName: "X_MANAGE_DB_EXE"; ValueData: "{app}\mysql\bin\mysqld.exe"; Flags: uninsdeletevalue ; -Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; AfterInstall: RefreshEnvironment; Components: MySQL; \ +;Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; AfterInstall: RefreshEnvironment; Components: MySQL; \ ValueName: "X_MANAGE_DB_COF"; ValueData: "{app}\mysql\my.ini"; Flags: uninsdeletevalue ; ; MySQL【通用服务】,导入脚本数据使用 @@ -401,13 +411,19 @@ end; // 在安装完成后执行 procedure CurStepChanged(CurStep: TSetupStep); -begin +begin + // 仅在安装完成后执行 if CurStep = ssPostInstall then begin CreateConfigFromTemplate; - // if UsingWinNT then - // Exec('cmd.exe', '/C cmd', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); + if FileExists(ExpandConstant('{app}\mysql\template.ini')) then + DeleteFile(ExpandConstant('{app}\mysql\template.ini')); + + if FileExists(ExpandConstant('{app}\mysql\template-initialize-and-start-mysql.bat')) then + DelTree(ExpandConstant('{app}\mysql\template-initialize-and-start-mysql.bat'), False, True, False); + if FileExists(ExpandConstant('{app}\mysql\template-register-mysql-with-data.bat')) then + DelTree(ExpandConstant('{app}\mysql\template-register-mysql-with-data.bat'), False, True, False); end; end;