Я пытаюсь создать мастер установки с программным обеспечением InnoSetup для легкого развертывания моей программы, но в настоящее время я сталкиваюсь с проблемой с моим сценарием.
Я привык делать мастер установки basi c, но теперь мне нужно реализовать новый функциональность которых:
Я хочу проверить, существует ли файл на компьютере, чтобы не перезаписывать его.
Я сделал так (в разделе [files]) :
[Files]
Source: "{#MyAppExeFile}"; DestDir: "{app}"; Flags: ignoreversion
Source: "{#MyAppSrcFolder}*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "{#MyAppSrcFolder}FileFolder\testFile.py"; DestDir: "D:\Users\{username}\myFolderTest\"; Flags: ignoreversion recursesubdirs createallsubdirs;Check: needInstallFile(ExpandConstant('{username}'))
И я добавил следующий раздел [code]:
[code]
function needInstallFile(user : string) : Boolean;
begin
if IsTaskSelected('initFile') then begin
if FileExists('D:\Users\' + user + '\myFolderTest\testFile.py') then begin
MsgBox('The file already exist', mbInformation, MB_OK);
Result:=False;
exit;
end else begin
Result:=True;
exit;
end;
end;
end;
Когда я компилирую свой код, он работает, но если файл уже существует, у меня появляется три всплывающих окна (а не только тот, который я хотел бы иметь). Я не понимаю, несмотря на мои исследования по Inte rnet.
Если у вас есть подсказка, чтобы помочь мне, мне интересно, потому что я застрял.
Заранее спасибо за Ваша помощь.
PS: Извините за мой английский sh, к сожалению, я французский парень.
Томас