2009-04-28 9 views
5

Używam najnowszej wersji INNO które wykonuje następujące czynności podczas konfiguracji:rozpakowane pliki na początku się konfiguracji zamiast końca

  1. Wykonaj sprawdzenie zależności, aby zobaczyć, co jest zainstalowane
  2. Instaluje zależności, które nie są już zainstalowane (.NET, SQL Server, directx itp)
  3. Zainstaluj aplikację i pliki z sekcji [Files] (wpReady)
  4. Sprawdza SQL Server dla poprzednio zainstalowanej datab ase i tworzy/aktualizuje tabele itp.

Krok [4] tworzy bazę danych i tabele itp. i działa tylko wtedy, gdy SQL Server został już zainstalowany, dlatego jest wykonywany w kroku [2].

Katalog wyjściowy zawiera utworzony plik setup.exe i ręcznie umieszczam dodatkowy folder zależności zawierający pliki wymagane dla kroków [1,2 i 4] wymienionych powyżej.

Działa to świetnie, ale chciałbym utworzyć pojedynczy exe, który zawiera wszystkie zależności i wyodrębnia zależności PRZED wpReady i przed krokiem [1] powyżej.

Zależności są w sekcji [Files], ale te pliki nie są wyodrębniane, dopóki konfiguracja nie wykona komunikatu wpReady po przejściu przez wszystkie formularze i próbie zainstalowania plików.

I użyć następującego który dodaje co muszę setup.exe

[Files] 
Source: Output\Dependencies\*; DestDir: {tmp}; Flags: deleteafterinstall 

Jaki jest najlepszy sposób, aby wyodrębnić pliki do katalogu temp przed wpReady lub należy wykonać działania wpReady pierwszej następnie idź o zainstalowaniu zależności (nie jest to idealne rozwiązanie).

Odpowiedz

11

Można użyć funkcji ExtractTemporaryFile() w funkcji PrepareToInstall zdarzenia wyodrębnić dowolny plik z sekcji [Files] do {tmp} wcześniej, a zostanie ona usunięta, gdy konfiguracja zakończy. Wraz ze skryptowaniem i różnymi funkcjami Inno Setup możesz osiągnąć prawie wszystko.

Zobacz sekcję "Skrypty Pascala" w pomocy programu Inno, w szczególności w "Referencji funkcji pomocniczych". Znajdziesz tam dokumentację dla ExtractTemporaryFile() i więcej.

+0

doskonałe dzięki. Nie mogę uwierzyć, że tęskniłem za tą funkcją! – Belliez

+0

Zalecane miejsce do zrobienia jest teraz w funkcji zdarzenia [PrepareToInstall], ponieważ umożliwia łatwiejsze ostrzeganie o użyciu i monitach o ponowne uruchomienie. – Deanna

-2

{tmp}

Katalog tymczasowy używany przez Instalatora lub Odinstaluj. Nie jest to wartość zmiennej środowiskowej użytkownika TEMP. Jest to podkatalog katalogu tymczasowego użytkownika utworzonego przez Instalatora lub Odinstaluj przy uruchamianiu (o nazwie takiej jak "C: \ WINDOWS \ TEMP \ IS-xxxxx.tmp"). Wszystkie pliki i podkatalogi w tym katalogu są usuwane po zakończeniu instalacji lub odinstalowania. Podczas instalacji jest to przede wszystkim przydatne do wyodrębniania plików, które mają zostać wykonane w sekcji [Uruchom], ale nie są potrzebne po instalacji.

+1

Nie tylko twoja odpowiedź nie wskazuje wyraźnie, co sugerujesz zmienić w skrypcie, zakładając, że chcesz powiedzieć, aby użyć lokalizacji pliku {tmp} jako miejsca docelowego, @Belliez stany pytań, które chce wyodrębnić pliki przed faktyczną instalacją Rozpocznij proces, a sposób, w jaki przeczytam twoją sugestię, spowoduje, że pliki tam się znajdą. – jachguate

+0

to, co otrzymuję od pomocy, ponieważ nie mogę undestand ExtractTemporaryFile() i nie mogę zrobić, jeśli możesz podać mi przykład dzięki –

Powiązane problemy