Files
school-meal/school-meal-setup.iss
T
Chunyu ffe44f4cb1 fix: 修复 EXE 数据库 schema 不匹配导致 500 错误
- ISS 移除 onlyifdoesntexist 确保安装目录 db.sqlite3 始终更新

- .gitignore 忽略所有 sqlite3 文件

- 前端翻页组件和样式更新
2026-08-29 13:49:23 +08:00

97 lines
3.6 KiB
Plaintext

; Inno Setup script for 学校订餐菜单生成器
; Build with: iscc school-meal-setup.iss
; Prerequisites: Inno Setup 6.x (https://jrsoftware.org/isinfo.php)
;
; This script packages the PyInstaller output (dist/school-meal/) into a
; standard Windows installer with Start Menu shortcuts and uninstall support.
[Setup]
AppId={{B7E3A4F1-5D92-4C8A-9F6E-2A1B3C4D5E6F}
AppName=学校订餐菜单生成器
AppVersion=1.0.0
AppPublisher=学校食堂管理
AppPublisherURL=
DefaultDirName={autopf}\SchoolMeal
DefaultGroupName=学校订餐菜单生成器
OutputDir=installer
OutputBaseFilename=学校订餐菜单生成器-安装包
SetupIconFile=app.ico
Compression=lzma2/ultra64
SolidCompression=yes
WizardStyle=modern
PrivilegesRequired=lowest
PrivilegesRequiredOverridesAllowed=dialog
ArchitecturesAllowed=x64compatible
ArchitecturesInstallIn64BitMode=x64compatible
CloseApplications=force
RestartApplications=no
UninstallDisplayIcon={app}\app.ico
VersionInfoVersion=1.0.0.0
VersionInfoCompany=学校食堂管理
VersionInfoDescription=学校订餐菜单生成器安装程序
VersionInfoProductName=学校订餐菜单生成器
VersionInfoProductVersion=1.0.0
MinVersion=10.0.17763
SetupLogging=yes
UninstallLogMode=append
UsePreviousAppDir=no
UsePreviousGroup=no
UsePreviousSetupType=no
[Languages]
Name: "chinesesimplified"; MessagesFile: "compiler:Languages\ChineseSimplified.isl"
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "创建桌面快捷方式"; GroupDescription: "附加选项:"; Flags: checkedonce
Name: "startupicon"; Description: "开机自动启动"; GroupDescription: "附加选项:"; Flags: unchecked
[Files]
; Main executable
Source: "dist\school-meal\school-meal.exe"; DestDir: "{app}"; Flags: ignoreversion
; Database template (always updated — user data lives in %LOCALAPPDATA%)
Source: "dist\school-meal\db.sqlite3"; DestDir: "{app}"; Flags: ignoreversion uninsneveruninstall
; All runtime dependencies
Source: "dist\school-meal\_internal\*"; DestDir: "{app}\_internal"; Flags: ignoreversion recursesubdirs createallsubdirs
; Application icon (referenced by shortcuts and uninstall)
Source: "app.ico"; DestDir: "{app}"; Flags: ignoreversion
[Icons]
Name: "{group}\学校订餐菜单生成器"; Filename: "{app}\school-meal.exe"; WorkingDir: "{app}"; IconFilename: "{app}\app.ico"
Name: "{group}\卸载 学校订餐菜单生成器"; Filename: "{uninstallexe}"; WorkingDir: "{app}"; IconFilename: "{app}\app.ico"
Name: "{autodesktop}\学校订餐菜单生成器"; Filename: "{app}\school-meal.exe"; WorkingDir: "{app}"; Tasks: desktopicon; IconFilename: "{app}\app.ico"
Name: "{userstartup}\学校订餐菜单生成器"; Filename: "{app}\school-meal.exe"; WorkingDir: "{app}"; Tasks: startupicon; IconFilename: "{app}\app.ico"
[Run]
Filename: "{app}\school-meal.exe"; Description: "启动 菜单生成器"; Flags: nowait postinstall skipifsilent
[Code]
// Check if school-meal is already running before install/uninstall
function InitializeSetup: Boolean;
var
ResultCode: Integer;
begin
Result := True;
Exec('taskkill', '/F /IM school-meal.exe', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;
function InitializeUninstall: Boolean;
var
ResultCode: Integer;
begin
Result := True;
Exec('taskkill', '/F /IM school-meal.exe', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;
function PrepareToInstall(var NeedsRestart: Boolean): String;
var
ResultCode: Integer;
begin
Result := '';
Exec('taskkill', '/F /IM school-meal.exe', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := False;
end;