2009-04-28 4 views
5

J'utilise la dernière version de Inno qui effectue les opérations suivantes lors de l'installation:l'extraction des fichiers au démarrage configuration au lieu de la fin

  1. Effectuez la procédure de dépendance pour voir ce qui est installé
  2. Installe dépendances ne sont pas déjà installés (.net, SQL server, directx etc)
  3. Installez l'application et les fichiers de la [fichiers] section (wpReady)
  4. SQL server vérifie pour datab déjà installé ase et crée/met à jour les tables etc.

L'étape [4] crée la base de données et les tables etc. et ne fonctionne que si SQL Server a déjà été installé, c'est pourquoi cela est fait à l'étape [2].

Le répertoire de sortie contient le fichier setup.exe créé et je place manuellement le dossier de dépendances supplémentaires contenant les fichiers requis pour les étapes [1,2 et 4] mentionnées ci-dessus.

Cela fonctionne très bien mais je voudrais créer un seul exe qui inclut toutes les dépendances et extrait les dépendances AVANT wpReady et avant l'étape [1] ci-dessus. Les dépendances sont dans la section [Files] mais ces fichiers ne sont pas extraits tant que le programme d'installation n'a pas exécuté le message wpReady après que le programme d'installation a parcouru tous les formulaires et a tenté d'installer les fichiers.

J'utilise les éléments suivants qui ajoute ce que je dois le setup.exe

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

Quelle est la meilleure façon d'extraire les fichiers dans le répertoire temporaire avant wpReady ou devrais-je effectuer les actions de wpReady d'abord, puis aller sur l'installation des dépendances (pas idéal cependant).

Répondre

11

Vous pouvez utiliser la fonction ExtractTemporaryFile() dans la fonction d'événement PrepareToInstall pour extraire tous les fichiers de la section [Files] à {tmp} plus tôt, et il sera supprimé lorsque l'installation se termine. Avec les scripts et les différents hooks, Inno Setup vous donne presque tout ce qui est possible. Jetez un oeil à la section "Pascal Scripting" de l'aide Inno Setup, en particulier la "Référence des fonctions de support". Vous y trouverez la documentation pour ExtractTemporaryFile() et plus.

+0

excellent merci. Je ne peux pas croire que j'ai raté cette fonction! – Belliez

+0

L'emplacement recommandé pour ce faire est maintenant dans la fonction d'événement [PrepareToInstall] car il permet une identification plus facile des utilisations et des invites de redémarrage. – Deanna

-2

{tmp}

Répertoire temporaire utilisé par le programme d'installation ou de désinstallation. Ce n'est pas la valeur de la variable d'environnement TEMP de l'utilisateur. C'est un sous-répertoire du répertoire temporaire de l'utilisateur qui est créé par Setup ou Uninstall au démarrage (avec un nom comme "C: \ WINDOWS \ TEMP \ IS-xxxxx.tmp"). Tous les fichiers et sous-répertoires de ce répertoire sont supprimés lors de l'installation ou de la désinstallation. Au cours de l'installation, ceci est principalement utile pour extraire les fichiers qui doivent être exécutés dans la section [Exécuter] mais qui ne sont pas nécessaires après l'installation.

+1

Non seulement votre réponse n'indique pas clairement ce que vous suggérez de changer dans le script, en supposant que vous voulez utiliser l'emplacement du fichier {tmp} comme destination, @Belliez indique qu'il veut extraire les fichiers avant l'installation proprement dite processus commence, et la façon dont je lis votre suggestion, il mettra les fichiers là après ce moment. – jachguate

+0

c'est ce que je reçois de l'aide beacuse je ne pas undestand ExtractTemporaryFile() et je ne peux pas le faire si vous pouvez s'il vous plaît donnez-moi un exemple merci –