Вы не можете вызвать код Pascal Script из препроцессора Inno Setup.
Препроцессор оценивается на время компиляции , как самое первое, до того, как будет запущен даже компилятор Pascal Script. Пока код Паскаля работает на время выполнения .
Вы можете сгенерировать код Pascal Script препроцессором. Что это означает, что вы не можете его назвать, поскольку код Pascal Script даже технически не существует во время оценки кода препроцессора.
Это действительно правильно:
[Setup]
AppVersion={code:GetVersion}
Поскольку AppVersion
вычисляется в время выполнения , оно может включать константы , например {code}
(что, возможно, не " константа " - но это в терминологии Inno Setup), как задокументировано :
Значение этой директивы , которая может включать в себя константы , ...
Но вы не можете использовать константы в VersionInfoVersion
:
[Setup]
VersionInfoVersion={code:GetVersion}
Поскольку VersionInfoVersion
оценивается в время компиляции , так как его значение сохраняется в исполняемом заголовке установщика.
Но вряд ли что-то не может быть реализовано в препроцессоре. Но вы должны сказать нам, что вы на самом деле хотите сделать.