Поддерживает ли InnoSetup функцию ExpandConstant во включаемых файлах?
Следующая функция хорошо работала, когда была определена в основном файле сценария установки:
function PrevInstallExists: Boolean;
var
Value: string;
UninstallKey: string;
begin
UninstallKey := 'Software\Microsoft\Windows\CurrentVersion\Uninstall\' +
ExpandConstant('{#SetupSetting("AppId")}') + '_is1';
//MsgBox(UninstallKey, mbConfirmation, MB_OK);
Result := (RegQueryStringValue(HKLM, UninstallKey, 'UninstallString', Value) or
RegQueryStringValue(HKCU, UninstallKey, 'UninstallString', Value)) and (Value <> '');
end;
Но происходит сбой при перемещении во включенный файл с этим:
#include "scripts\util-code.iss"
Раскомментировав строку MsgBox, вы увидите, что ExpandConstant
функция ничего не возвращает. Я предполагаю, что это потому, что AppId
определяется в основном файле сценария, а не во включенном файле. Есть ли решение для этого, кроме перемещения ExpandConstant
вызов за пределами этой функции утилит и передается ли она в качестве параметра?