- ISS 移除 onlyifdoesntexist 确保安装目录 db.sqlite3 始终更新 - .gitignore 忽略所有 sqlite3 文件 - 前端翻页组件和样式更新
97 lines
3.6 KiB
Plaintext
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; |