Сделал набросок скрипта, реализующего обновление установленной ранее программы.
Просьба проверить кошерность кода. ))
Так же нужно
вставить проверку дистрибутивной папки
на наличие определенных файлов (см. коментарии в коде ниже).
За ранее спасибо за помощь.
Код:

[Setup]
AppName=MyProg
AppVerName=MyProg
DefaultDirName={reg:HKLM\SOFTWARE\MyProg\Inform,InstallPath} ; путь до программной папки
AppVersion=1.1.0.1
UsePreviousAppDir=no
AppendDefaultDirName=no
AllowRootDirectory=yes
DirExistsWarning=no
DisableStartupPrompt=yes
DisableReadyPage=yes
; DisableFinishedPage=yes
DisableDirPage=True
DisableProgramGroupPage=yes
OutputBaseFilename=Setup
Compression=lzma
SolidCompression=no
Uninstallable=false
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Files]
Source: {src}\Lics\*; DestDir: {app}\Serv\Lic\; Flags: external recursesubdirs skipifsourcedoesntexist
[_Code]
function GetInstallPath( AppID: String ): String;
var
Path: String;
begin
Path:= '';
RegQueryStringValue(HKLM, 'SOFTWARE\MyProg\Inform', 'InstallPath', Path);
Result:= Path;
end;
function InitializeSetup(): Boolean;
var
s:string;
begin
Result:=True;
// Проверка через реестр
if not RegValueExists(HKLM, 'SOFTWARE\MyProg\Inform', 'InstallPath') then
begin
s:='Программа не установлена.' #13#13 'Дальнейшая работа невозможна.';
MsgBox(s, mbError, mb_Ok);
Result:=False;
end else
// Проверка присутствия главного файла в папке с установленной программой
begin
If (FileSearch('Serv\'+'infrmsrv.exe', ExpandConstant('{code:GetInstallPath}'))='') then
begin
s:='Извините, в директории '+ExpandConstant('{code:GetInstallPath}')+'' #13 'не обнаружены файлы, подтверждающие подлинность программы.' #13#13 'Пожалуйста, выберите правильный путь.';
MsgBox(s, mbError, mb_Ok);
Result:= False;
end else
//
// Здесь нужно вставить ПРОВЕРКУ НА СУЩЕСТВОВАНИЕ ФАЙЛОВ ПО МАСКЕ *.lic в дистрибутивной папке Serv\Lics\
// Если в данной папке нет файлов *.lic, тогда ВЫВЕСТИ СЛЕДУЮЩЕЕ СООБЩЕНИЕ:
begin
s:='Скопируйте дополнения в папку:' #13#13 +ExpandConstant('{code:GetInstallPath}')+'\Serv\Lic';
MsgBox(s, mbInformation, mb_Ok);
Result:=False; // сомневаюсь в необходимости этой строки
end
//
end;
end;
// и продолжить код, который будет дальше . . .