2014-10-28 2 views
3

Я пытаюсь создать установщик с помощью Inno Setup, который я никогда раньше не использовал, и все работает нормально, за исключением того, что мне нужен файл VERSION.txt, который будет создан на монтаж. Вот что у меня до сих пор, в самом конце моего сценария:Паскаль процедура не пишет, как я ожидаю

[Code] 
procedure writeVersion(); 
begin 
    SaveStringToFile(ExpandConstant('{app}\VERSION.txt'), '{#MyAppVersion}', False); 
end; 

procedure nowWrite(); 
begin 
    writeVersion(); 
end;    

Но нет VERSION.TXT файл создается на всех после того, как я скомпилировать и запустить программу установки. Раньше я никогда не пользовался Паскалем, и это, насколько я мог, прежде, чем я сдался. Почему файл не создается?

EDIT:
Я попытался добавить

begin 
    nowWrite();   
end. 

до конца, как было предложено @TLama, но он по-прежнему не писать новый файл.

Заранее благодарим за помощь!

+0

Вы называете свою процедуру 'nowWrite' откуда-то? Постскриптум 'ExpandConstant' не требуется для второго параметра, который только расширяет переменную препроцессора. – TLama

+0

Как подсказка для отладки, проверьте расширенные строки, чтобы узнать, что они собой представляют. Вероятно, 'writeln' может использоваться для проверки выражения, хотя может быть сложно определить, где можно увидеть результат. – wallyk

+0

Это не Паскаль. Вы должны назвать это в какой-то момент. – TLama

ответ

1

Вы должны позвонить noWrite в стандартное событие установщика. В настоящее время ваш код никогда не вызывается.

Поддерживаемые события перечислены on this page

, например:

procedure CurStepChanged(CurStep: TSetupStep); 
begin 
    if CurStep = ssPostInstall then 
    nowWrite(); 
end; 

будет вызывать пользовательский код, когда установка покончено. Просто изучите документацию, чтобы выбрать событие, соответствующее вашим потребностям.

Смежные вопросы