IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils Delphi Discussion :

[inno setup] sources externes et cdrom


Sujet :

Outils Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 61
    Points : 34
    Points
    34
    Par défaut [inno setup] sources externes et cdrom
    Bonjour,

    Je veux créer un cdrom hybride mac/pc.
    Pour le côté pc j'ai créé un installateur avec innosetup.
    Il s'agit d'installer une application et une "librairie" (dossier qui pèse plusieurs centaines de Mo et qui est partagé sur le CD pour la version mac et pc).
    Cette "librairie" (c'est juste un dossier d'images) ne peut donc pas être incorporée dans l'installateur et doit être considérée comme une source externe.
    Jusque là j'y suis arrivé.

    Là où je butte c'est sur le chemin de cette librairie que je dois indiquer à innosetup pour que l'installateur la retrouve sur le cdrom.
    Il doit y avoir un moyen d'indiquer un chemin relatif non ?

    voici mon code pour la partie concernée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [Files]
    Source: Z:\Sites\guide\Guide CD\Installation\Dossier\Guide.exe; DestDir: {app}; Flags: ignoreversion
    Source: Z:\Sites\guide\Guide CD\Installation\Dossier\datas\*; DestDir: {app}\datas; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: Z:\Sites\guide\Guide CD\Installation\Dossier\Externals\*; DestDir: {app}\Externals;  Flags: ignoreversion recursesubdirs createallsubdirs
    Source: Z:\Sites\guide\Guide CD\Installation\Dossier\icons\*; DestDir: {app}\icons; Flags: ignoreversion recursesubdirs createallsubdirs
    ; NOTE: Don t use "Flags: ignoreversion" on any shared system files
    Source: installation\Dossier Library.bundle\*; DestDir: {commonappdata}\Guide\Dossier Library.bundle\; Components: Library; Flags: external recursesubdirs ignoreversion createallsubdirs
    c'est la dernière ligne qui concerne cette fameuse librairie, en sachant que l'installateur sera sur la racine du Cd à côté du dossier "installation" contenant la librairie.

    Merci pour vos lumières !

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 794
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 794
    Points : 13 470
    Points
    13 470
    Par défaut
    Tu n'as logiquement rien à mettre dans [Files] puisque ces fichiers ne font pas parties de l'installer.

    Ce serait plutôt dans [Run] que tu devrais ajouter un appel à XCOPY. Quelque chose comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [Run]
    Filename: xcopy; Parameters: "{src}\installation\Dossier Library.bundle\*.*" "{commonappdata}\Guide\Dossier Library.bundle\" /E/H/K/Y/D; StatusMsg: Copie librairie...; Flags: runminimized

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Tu n'as logiquement rien à mettre dans [Files] puisque ces fichiers ne font pas parties de l'installer.

    Ce serait plutôt dans [Run] que tu devrais ajouter un appel à XCOPY. Quelque chose comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [Run]
    Filename: xcopy; Parameters: "{src}\installation\Dossier Library.bundle\*.*" "{commonappdata}\Guide\Dossier Library.bundle\" /E/H/K/Y/D; StatusMsg: Copie librairie...; Flags: runminimized
    Je viens de trouver une solution, simplement en rajoutant "{src}\" devant le chemin du dossier. Je vais quand même tester une fois gravé si ça marche encore !
    [Edit] Ca marche avec mon script mais lors de l'installation il me liste tous les fichiers, ce qui est un poil ennuyeux car il y en a beaucoup et doit donc ralentir l'installation.
    Je teste avec ta solution pour voir.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    Je teste avec ta solution pour voir.
    Dans ce que tu m'as donné, il faut corriger les guillemets pour qu'ils encadrent tous les paramètres pour XCOPY.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [Run]
    Filename: xcopy; Parameters: "{src}\installation\Dossier Library.bundle\*.* {commonappdata}\Guide\Dossier Library.bundle\ /E/H/K/Y/D"; StatusMsg: Copie librairie...; Flags: runminimized
    Mais ça ne semble pas marcher au niveau d'XCOPY comment débugguer à ce niveau pour voir si les chemins sont corrects (traduction des {src} et {commonappdata}) ?

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 794
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 794
    Points : 13 470
    Points
    13 470
    Par défaut
    Dans ce que tu m'as donné, il faut corriger les guillemets pour qu'ils encadrent tous les paramètres pour XCOPY.
    Faux !
    Les guillements sont là parce que tes chemins contiennent des espaces !
    Comme tu nous le montres, c'est comme si tu n'avais plus qu'un paramètre

    Lance la console Windows et exécute XCOPY /? pour plus d'infos.

    Avec le Switch /D par exemple, ne copie que les fichiers inexistants ou plus récents (Gain de temps si les fichiers n'ont pas changés )

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Faux !
    Les guillements sont là parce que tes chemins contiennent des espaces !
    Comme tu nous le montres, c'est comme si tu n'avais plus qu'un paramètre
    Ah, parce qu'Innosetup refusait de compiler en séparant les chemins par des guillemets comme tu l'avais écrit et n'a rien dit quand j'ai fait comme je te l'ai dit plus haut mais peut-être est-ce xcopy qui râle après

    SSinon peut être qu'avec des quote simple (') ça passera ?

  7. #7
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 794
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 794
    Points : 13 470
    Points
    13 470
    Par défaut
    En fait tu n'as pas tout tord .
    (La ligne que je t'avais donnée provennait d'un batch!)

    A l'arrivée, il faut doubler les doubles-guillemets .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filename: xcopy; Parameters: """{src}\installation\Dossier Library.bundle\*.*"" ""{commonappdata}\Guide\Dossier Library.bundle\"" /E/H/K/Y/D"; StatusMsg: Copie librairie...; Flags: runminimized

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    En fait tu n'as pas tout tord .
    (La ligne que je t'avais donnée provennait d'un batch!)

    A l'arrivée, il faut doubler les doubles-guillemets .
    Merci j'aurai pas trouver tout seul !
    Ta solution marche bien mais comme la mienne (en restant dans [Files]) elle ne me convient qu'à moitié.
    Dans ma solution, on voit la progression de la copie ce qui est bien mais on voit aussi la liste des fichiers qui sont copiés, j'aurai préféré qu'on ne les voit pas.
    Dans ta solution, la barre de progression de l'installateur reste bloquée un bon moment à 100 % en attendant la copie des fichiers en background, et c'est un peu génant car on peut penser à un bug...
    L'idéal serait de voir la progression de la copie sans avoir le détail de ce qui est copié.

  9. #9
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 794
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 794
    Points : 13 470
    Points
    13 470
    Par défaut
    Tu pourrais au minimum modifier le StatusMsg pour dire que cela peut prendre plusieurs minutes (Microsoft ne se gène pas ).

    Sinon, créer ta propre routine de copie dans la section [Code] avec une page de progression personnalisée (TOutputProgressWizardPage). Les FindFirst, FindNext sont supportés.

Discussions similaires

  1. inno-setup : installer depuis une archive externe
    Par kaari kosaku dans le forum Outils
    Réponses: 1
    Dernier message: 14/06/2010, 17h16
  2. Réponses: 1
    Dernier message: 22/08/2008, 18h39
  3. Réponses: 1
    Dernier message: 06/04/2008, 13h28
  4. [INNO SETUP][ORACLE] Installer le client Oracle avec Inno
    Par AnnSo dans le forum Bases de données
    Réponses: 11
    Dernier message: 19/08/2004, 16h21
  5. Bde Inno Setup et Test
    Par Fxg dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/07/2004, 14h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo