R.i.m.s.k.y.,
приношу свои извинения, тк мой пример состоит на половину из лишнего кода
только сейчас допёрло, что на шаге ssDone константа {app} ещё существует, а это всё упрощает и укорачивает!
Вот:
читать дальше »
Код:
[Setup]
AppName=My Program
AppVerName=MyProg.exe
DefaultDirName={pf}\SeperTest
UninstallFilesDir={app}\uninstall
[Components]
Name: norm; Description: Я простая версия; Flags: exclusive
Name: port; Description: А я портативная; Flags: exclusive
[Files]
Source: port\*; DestDir: {app}\port; Flags: ignoreversion createallsubdirs recursesubdirs sortfilesbyextension sortfilesbyname uninsneveruninstall; Components: port
Source: norm\*; DestDir: {app}\norm; Flags: ignoreversion createallsubdirs recursesubdirs sortfilesbyextension sortfilesbyname; Components: norm
[ Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode: Integer;
begin
if (CurStep = ssDone) and (IsComponentSelected('port')) then Exec(ExpandConstant('{app}\uninstall\unins000.exe'), '/VERYSILENT', '', SW_SHOW, ewNoWait, ResultCode);
end;
(Проверил. Работает)
наглядный пример прилагается в архиве