Inno Setup 多版本选择安装页面教程:根据版本筛选文件并复制
[Setup] AppName=MyApp AppVersion=1.0 DefaultDirName={pf}\MyApp
[Files] Source: "File1.exe"; DestDir: "{app}"; Components: Version1 Source: "File2.exe"; DestDir: "{app}"; Components: Version2 Source: "File3.exe"; DestDir: "{app}"; Components: Version3
[Components] Name: Version1; Description: "Version 1" Name: Version2; Description: "Version 2" Name: Version3; Description: "Version 3"
[Code] var VersionPage: TInputOptionWizardPage;
procedure InitializeWizard; begin VersionPage := CreateInputOptionPage(wpSelectComponents, 'Version Selection', 'Please select the desired version of the application.', '', False, False); VersionPage.Add('Version 1'); VersionPage.Add('Version 2'); VersionPage.Add('Version 3'); end;
procedure CurPageChanged(CurPageID: Integer); var i: Integer; begin if CurPageID = VersionPage.ID then begin for i := 0 to GetArrayLength(VersionPage.Values) - 1 do begin if VersionPage.Values[i] then begin case i of 0: begin // Copy files for Version 1 ExtractTemporaryFile('File1.exe'); end; 1: begin // Copy files for Version 2 ExtractTemporaryFile('File2.exe'); end; 2: begin // Copy files for Version 3 ExtractTemporaryFile('File3.exe'); end; end; end; end; end; end;
procedure CurStepChanged(CurStep: TSetupStep); begin if CurStep = ssInstall then begin // Copy the selected files to the destination directory if VersionPage.Values[0] then FileCopy(ExpandConstant('{tmp}\File1.exe'), ExpandConstant('{app}\File1.exe'), False); if VersionPage.Values[1] then FileCopy(ExpandConstant('{tmp}\File2.exe'), ExpandConstant('{app}\File2.exe'), False); if VersionPage.Values[2] then FileCopy(ExpandConstant('{tmp}\File3.exe'), ExpandConstant('{app}\File3.exe'), False); end; end;
原文地址: https://www.cveoy.top/t/topic/pFRJ 著作权归作者所有。请勿转载和采集!