2009-02-04 5 views
14

Il a été suggéré dans le groupe de discussion IS d'utiliser/D = mais en utilisant le fichier iscc.exe fourni avec la version 5.2.3, j'obtiens une erreur "option inconnue:".Comment passez-vous les paramètres au compilateur de ligne de commande Inno Setup?

Ensuite, dans le script, comment utilisez-vous la valeur du paramètre de ligne de commande?

+0

Merci à tous pour les réponses. Tout était utile. Je déteste en choisir un comme réponse préférée. – AlanKley

Répondre

5

De l'Inno Setup helpfile:

Inno Setup préprocesseur remplace par une version étendue Configuration standard Inno ligne de commande compilateur (ISCC.exe). Cette version étendue fournit des paramètres supplémentaires pour contrôler le préprocesseur Inno Setup .

Les "paramètres supplémentaires" incluent l'option/d.

21

Vous avez, comme le dit MicSim, besoin du préprocesseur. Il est inclus dans le dernier ISPack. Une fois installé, iscc supporte/D.

Vous pouvez ensuite utiliser les valeurs définies comme ceci (en supposant que vous aviez fait /DVERSION_NAME=1.23):

AppVerName=MyApplication v{#VERSION_NAME} 
+4

Maintenant intégré à Inno Setup 5, vous n'avez plus besoin de télécharger de packs supplémentaires. –

+2

Cela ne fait pas partie de la documentation. S'il vous plaît inclure quelques informations utiles ici: http://www.jrsoftware.org/ishelp/index.php?topic=setupcmdline – vezenkov

-3

Si vous voulez analyser les arguments de ligne de commande à partir du code dans Inno, puis utilisez une méthode similaire pour ça. Il suffit d'appeler le script Inno de la ligne de commande comme suit:

C:\MyInstallDirectory>MyInnoSetup.exe -myParam parameterValue 

Ensuite, vous pouvez appeler le GetCommandLineParam comme ceci où que vous soyez:

myVariable := GetCommandLineParam('-myParam'); 

// ========= ============================================= =======

{ Allows for standard command line parsing assuming a key/value organization } 
function GetCommandlineParam (inParam: String):String; 
var 
    LoopVar : Integer; 
    BreakLoop : Boolean; 
begin 
    { Init the variable to known values } 
    LoopVar :=0; 
    Result := ''; 
    BreakLoop := False; 

    { Loop through the passed in arry to find the parameter } 
    while ((LoopVar < ParamCount) and 
      (not BreakLoop)) do 
    begin 
    { Determine if the looked for parameter is the next value } 
    if ((ParamStr(LoopVar) = inParam) and 
     ((LoopVar+1) < ParamCount)) then 
    begin 
     { Set the return result equal to the next command line parameter } 
     Result := ParamStr(LoopVar+1); 

     { Break the loop } 
     BreakLoop := True; 
    end 

    { Increment the loop variable } 
    LoopVar := LoopVar + 1; 
    end; 
end; 

Hope this helps ...

+1

votre réponse indique une chose différente de ce qui est demandé ici ... l'OP veut passer des paramètres à la commande compilateur de ligne, pas à l'installateur lui-même. – jachguate

+0

Veuillez supprimer cette réponse - cela ajoute de la confusion et n'est pas pertinent à la question. – SlowLearner

+0

Oui c'est différent, mais cela répond à mes problèmes. Donc merci – JavaJade

Questions connexes