10
votes

Inno Setup - Utilisation correcte des [Types], [Composants] et [Tâches]

J'écris un script qui oblige les utilisateurs à choisir les parties de l'application à installer:

application uniquement, moteur de base de données uniquement, données uniquement, ou toute combinaison de ceux-ci.

Je sais que je devrais utiliser la section [COMPOSANTES] Pour définir ceux-ci, mais je suis confus par l'interaction entre types, composants et tâches - pour un, je pensais [Tâches ] était pour les installations "extra", mais j'ai ensuite vu du code qui relie explicitement les trois.

Quelqu'un peut-il me dire une bonne explication de la façon dont ces travaux ensemble? - Je suis sûr qu'il y a un ...

merci


0 commentaires

3 Réponses :


18
votes

les composants em> sont constitués d'un ou de plusieurs types em>. Dans le script, vous utiliserez les composants em> comme sélecteur en fonction du type choisi par l'utilisateur final. les composants em> peuvent être utilisés dans les tâches em> car en fonction des em> choisis par l'utilisateur A tâche em> auront ou non à exécuter.

Par exemple: P>

; 'Types': What get displayed during the setup
[Types]
Name: "full";     Description: "Full installation";
Name: "app";      Description: "Fapplication only";
Name: "dbengine"; Description: "Database engine only";
Name: "data";     Description: "Data only";

; Components are used inside the script and can be composed of a set of 'Types'
[Components]
Name: "full";     Description: "Full installation";   Types: full app dbengine app
Name: "app";      Description: "Fapplication only";   Types: app
Name: "dbengine"; Description: "Database engine only";Types: dbengine
Name: "data";     Description: "Data only";           Types: data

; Defines which files are setup, based on the differents components
[Files]
Source: "MyApp.exe";  DestDir: "{app}"; Flags: ignoreversion; Components: full app
Source: "ADll.dll";   DestDir: "{app}"; Flags: ignoreversion; Components: full app
Source: "Engine.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: full dbengine
Source: "data_0";     DestDir: "{app}"; Flags: ignoreversion; Components: full data
Source: "data_1";     DestDir: "{app}"; Flags: ignoreversion; Components: full data

; In the same fashion, a task can be set for a specific component
[Tasks]
Name: desktopicon; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"; Components: full app


1 commentaires

Et si certains fichiers sont uniquement installés lorsqu'une certaine tâche est sélectionnée? Ont-ils encore besoin des composants spécifiés alors?



1
votes

Ma compréhension est qu'un composant est essentiellement un ensemble de fichiers - il constitue un «composant» majeur de ce qui peut être installé. Un «type» d'installation est une sélection de composants qu'il est logique d'installer ensemble. Voici la façon dont je voudrais coder @ AZ01 's' s exemple. XXX


0 commentaires

0
votes

Une explication complète peut être trouvée sur INNOSETUP HELP Page: Paramètres de composants et tâches

et [Composants] Section

Je vous donne ci-dessous un échantillon générique: < Pré> xxx


0 commentaires