Vergleichen Sie die Versionszeichenfolgen in Inno Setup

Ich lese den Wert einer INF-Datei und muss ihn jetzt mit der Installationsversion vergleichen. Beim Kompilieren erhalte ich jedoch eine Fehlermeldung:

Unbekannter Bezeichner: CompareVersion

Was ist falsch

[Code]

function GetKeyValue(const AKeyName, AFileName, ADefault: string): string;
var  
  I: Integer;
  KeyPos: Integer;
  KeyFull: string;
  FileLines: TArrayOfString;
begin
  Result := ADefault;
  if LoadStringsFromFile(AFileName, FileLines) then
  begin
    KeyFull := AKeyName + '=';
    for I := 0 to GetArrayLength(FileLines) - 1 do
    begin
      FileLines[I] := TrimLeft(FileLines[I]);
      KeyPos := Pos(KeyFull, FileLines[I]);
      if KeyPos > 0 then
      begin
        Result := Copy(FileLines[I], KeyPos + Length(AKeyName) + 1, MaxInt);
        Break;
      end;
    end;
  end;
end;

var
  L2Ver2: TLabel;

procedure DirEditChange(Sender: TObject);
var
  FilePath: string;
begin
  FilePath := AddBackslash(WizardForm.DirEdit.Text) + 'left4dead2\steam.inf';
  L2Ver2.Caption := GetKeyValue('PatchVersion', FilePath, 'N/A');
  if (CompareVersion( L2Ver2.Caption, '{#MyAppOldVersion}') = 0) then
    begin
      ...
    end 
end;

Ich habe den Fehler in dieser Zeile:

if (CompareVersion( L2Ver2.Caption, '{#MyAppOldVersion}') = 0) then

{#MyAppOldVersion} ist bereits definiert.

Dieser Beitrag bezieht sich auf meine vorherige Frage:Lesen Sie eine INF-Datei während des Setups.

Wenn jemand helfen kann, würde ich mich freuen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage