я извиняюсь, но почему-то этот код не работает

ставлю версию 1.0.0.5 на версию 1.0.0.4 - пишет что новейшая версия уже установлена...
Код:

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{1419C2B5-9C27-42DE-9424-9EB8FEEF4C3B}
AppName=MyApp
AppVersion=1.0.0.5
;AppVerName=MyApp 1.0.0.5
AppPublisher=Студия "Автоматизация ИП"
AppPublisherURL=http://MyApp.kz/
AppSupportURL=http://MyApp.kz/
AppUpdatesURL=http://MyApp.kz/
DefaultDirName={pf}\MyApp
DefaultGroupName=MyApp
LicenseFile=C:\CVSWork\MyAppFB\MyApp32\license.txt
OutputDir=C:\CVSWork\MyAppFB\MyApp32
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1
[Files]
Source: "C:\CVSWork\MyAppFB\MyApp32\MyApp.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\CVSWork\MyAppFB\MyApp32\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
#define VersionMajor
#define VersionMinor
#define VersionRevision
#define VersionBuild
#expr ParseVersion("MyApp.exe", VersionMajor, VersionMinor, VersionRevision, VersionBuild)
#define VersionMS ((VersionMajor << 16) + VersionMinor)
#define VersionLS ((VersionRevision << 16) + VersionBuild)
{Code}
type
VersionState = (vsNotInstalled, vsOlderInstalled, vsSameInstalled, vsNewerInstalled);
function GetVersionState(): VersionState;
var
ExePath: String;
VersionMS, VersionLS: Cardinal;
VersionMSs : Cardinal;
begin
ExePath := ExpandConstant('{app}\MyApp.exe');
if GetVersionNumbers(ExePath, VersionMS, VersionLS) then begin
if (VersionMS < {#VersionMS}) or ((VersionMS = {#VersionMS}) and (VersionLS < {#VersionLS})) then begin
Result := vsOlderInstalled;
end else if (VersionMS > {#VersionMS}) or ((VersionMS = {#VersionMS}) and (VersionLS > {#VersionLS})) then begin
Result := vsNewerInstalled;
end else begin
Result := vsSameInstalled;
end;
end else begin
Result := vsNotInstalled;
end;
end;
function NextButtonClick(CurPageId: Integer): Boolean;
var VersState : VersionState;
begin
Result := True;
if CurPageId = wpSelectDir then begin
VersState := GetVersionState();
if (VersState = vsNewerInstalled) or (VersState = vsSameInstalled) then begin
MsgBox('Последняя версия программного продукта уже установлена. Установка будет отменена.', mbConfirmation, MB_OK);
Result := False;
WizardForm.CancelButton.OnClick(WizardForm.CancelButton);
end;
end;
end;
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm := false;
end;
[Icons]
Name: "{group}\MyApp"; Filename: "{app}\MyApp.exe"
Name: "{commondesktop}\MyApp"; Filename: "{app}\MyApp.exe"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\MyApp"; Filename: "{app}\MyApp.exe"; Tasks: quicklaunchicon
[Run]
Filename: "{app}\MyApp.exe"; Description: "{cm:LaunchProgram,MyApp}"; Flags: nowait postinstall skipifsilent
что я написал не так?