OK, сделай в DPR специальную ветку - сначала проверить на обновление и, если есть, обновить, потом запустить саму себя и выйти.
Код:
program Project1;
...
function IsUpdateAvailable : Boolean;
begin
...
end;
procedure UpdateProgram;
begin
...
end;
begin
if IsUpdateAvailabe Then
begin
UpdateProgram;
WinExec(ParamStr(0),SW_SHOWNORMAL);
Halt(0);
end;
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.