Поддерживает ли 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 вызов за пределами этой функции утилит и передается ли она в качестве параметра?

0 ответов

Другие вопросы по тегам