Как вы передаете параметры компилятору командной строки Inno Setup?
В группе новостей IS было предложено использовать /D =, но с использованием iscc.exe, поставляемого с версией 5.2.3, я получил ошибку "Неизвестная опция:".
Затем в script, как вы используете значение параметра командной строки?
Ответы
Ответ 1
Вы, как утверждает MicSim, нуждаетесь в препроцессоре. Он включен в последнюю версию ISPack. После того, как он установлен, поддержка iscc/D.
Затем вы можете использовать значения, определенные следующим образом (при условии, что вы сделали /DVERSION _NAME=1.23):
AppVerName=MyApplication v{#VERSION_NAME}
Ответ 2
В файле справки Inno Setup:
Препроцессор Inno Setup заменяет стандартная командная строка Inno Setup Компилятор (ISCC.exe) расширенным версия. Эта расширенная версия предоставляет дополнительные параметры для контроля Препроцессор настройки Inno.
"Дополнительные параметры" включают параметр/d.
Ответ 3
Если вы хотите проанализировать аргументы командной строки из кода в inno, используйте метод, подобный этому. Просто вызовите inno script из командной строки следующим образом:
C:\MyInstallDirectory>MyInnoSetup.exe -myParam parameterValue
Затем вы можете вызвать GetCommandLineParam таким образом, где вам это нужно:
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;
Надеюсь, что это поможет...