Alternatywnie można ręcznie zaktualizować wbudowany pasek postępu? Zasadniczo mam 2 MSIs włączone i przy użyciu Inno Setup jako bootstrapper, i w zależności od danych wejściowych użytkownika jeden lub oba z MSI mają być zainstalowane. Mam coś pracy przy użyciu instrukcji Exec w CurStepChanged, ale nie aktualizuje pasek postępu, gdy pliki są wyodrębniane i wygląda na to, że instalator jest zablokowany. Domyślam się, że końcowy wynik to, że chcę niektóre aktualizacje paska postępu, podczas gdy pliki są wyodrębniane do folderu tymczasowego. Poniżej zamieszczona jest mój bieżący kod:W konfiguracji Inno można dodawać instrukcje warunkowe do tego, co w sekcji [Uruchom] zostanie wykonane?
procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode: Integer;
begin
if(CurStep = ssInstall) then begin
if(InstallServer) then begin
ExtractTemporaryFile('ServerSetup.msi');
Exec('msiexec',ExpandConstant('/i "{tmp}\ServerSetup.msi" /qb INSTALLDIR="{code:GetInstallPath}\Server\" ALLUSERS=2'),'', SW_SHOW, ewWaitUntilTerminated, ResultCode);
end;
if(InstallClient) then begin
ExtractTemporaryFile('ClientSetup.msi');
Exec('msiexec',ExpandConstant('/i "{tmp}\ClientSetup.msi" /qb INSTALLDIR="{code:GetInstallPath}\Client\" ALLUSERS=2'),'', SW_SHOW, ewWaitUntilTerminated, ResultCode);
end;
end;
end;
Myślę, że czek: to jest to, co powinienem wiedzieć. Nie znalazłem nic o tym w pliku pomocy Inno Setup (co było zaskakująco pomocne) i nie było to możliwe w GUI ISTool. +1 teraz i zaakceptowany, jeśli działa :) – Davy8
Połączyłem się z odpowiednią sekcją pliku pomocy w odpowiedzi (Zobacz "Sprawdź funkcje"). Jest tam. ISTool również to wspiera. Wystarczy spojrzeć na kartę "Często" dowolnego elementu w sekcji "Skrypty". Jeśli już pisałeś funkcje z wynikiem boolowskim, możesz je po prostu wybrać z rozwijanego menu. –
Tak, zauważyłem, że po tym zacząłem to robić. Wygląda na to, że działa i jest tak bliski ideałowi, jak to zapewne dostanę bez spędzania wielu godzin na szukaniu i tworzeniu niestandardowego okna dialogowego postępu i innych rzeczy. Dzięki :) – Davy8