Копия викизеркало

Это зеркало вики с pascal.chat. Правка, история и вход — там.

LazAutoUpdater/ru

English · Polski · Русский

Lazarus Auto-Updater

Резюме

botton \

Загрузка


Установка


Пример приложения


Интернационализация(локализация)


Использование

pascal
LazAutoUpdate1.AutoUpdate;
pascal
If LazAutoUpdate1.DownloadInProgress Then
  Begin
  CanClose := False;
  ShowMessage('Пожалуйста, подождите. Загрузка все еще продолжается.');
  End;
pascal
LazAutoUpdate1.ShowWhatsNewIfAvailable;

Больший контроль

pascal
If LazAutoUpdate1.NewVersionAvailable Then
      MessageDlg(Application.Title, 'Новая версия ' + Application.Title +
        ' - доступна.' + LineEnding +
        'Нажмите «Проверить наличие новой версии» в меню «Справка», чтобы обновиться.', mtConfirmation,
        [mbOK], 0);
pascal
If LazAutoUpdate1.NewVersionAvailable then ..... else ...
pascal
If LazAutoUpdate1.DownloadNewVersion then ..... else ...
pascal
If LazAutoUpdate1.UpdateToNewVersion then ..... else ...

Отладка

pascal
LazAutoUpdate1.DebugMode:=TRUE;

тогда вы можете использовать встроенный метод OnDebugEvent для отслеживания активности:

pascal
procedure TForm1.LazAutoUpdate1DebugEvent(Sender: TObject; lauMethodName,lauMessage: string);
begin
// используется TEventLog
   Logger.Info('('+lauMethodName+') - ' + lauMessage);
end;

Также возникают события: OnDownloaded и OnNewVersionAvailable, а также свойство LastError с информацией, которую вы можете использовать для отладки.\

Поддержка


Лицензия


Развертывание вашего приложения с помощью LazAutoUpdate


Использование [свойств] auOtherSourceFilename и auOtherSourceURL


LazAutoUpdate [в виде приложения] в системном трее


Создание универсального онлайн-установщика/программы обновления

pascal
procedure TForm1.Button1Click(Sender: TObject);
// Uses SysUtils,LazFileUtils,ulazautoupdate и т.д.
Var sDirectoryToInstallTo: string;
begin
sDirectoryToInstallTo := ProgramDirectory + 'installed';
Application.Title:='My whizzy app'
LazAutoUpdate1.WorkingMode := lauInstall;
LazAutoUpdate1.ProjectType := auSourceForge;
LazAutoUpdate1.SFProjectname:='mywizzy';
LazAutoUpdate1.VersionsININame:='mywizzyapp.ini';
LazAutoUpdate1.ZipfileName:='mywizzyapp.zip';
LazAutoUpdate1.AppFileWithPath := sDirectoryToInstallTo + DirectorySeparator + 'mywizzyapp.exe';
// Наша обязанность создать папку
if not DirectoryExistsUTF8(sDirectoryToInstallTo) then ForceDirectoriesUTF8(sDirectoryToInstallTo);
LazAutoUpdate1.Appversion:='0.0.0.0';
If LazAutoUpdate1.DownloadNewVersion then
  begin
    If LazAutoUpdate1.UpdateToNewVersion then
    begin
      LazAutoUpdate1.ShortCut.Category := scUtility;
      LazAutoUpdate1.ShortCut.Target := LazAutoUpdate1.AppFileWithPath;
      LazAutoUpdate1.ShortCut.ShortcutName := Application.Title;
      LazAutoUpdate1.MakeShortCut; //создает ярлык на рабочем столе и пункт меню Пуск в Windows
    end;
  end;
end;
pascal
// Uses asyncprocess
procedure TForm1.RunInstalledApp;
var
  AProcess: TAsyncProcess;
begin
  if not FileExistsUTF8(LazAutoUpdate1.AppFileWithPath) then
  begin
    ShowMessageFmt('%s не существует! Сначала установите его.',
      [LazAutoUpdate1.AppFileWithPath]);
    Exit;
  end;
  AProcess := TAsyncProcess.Create(nil);
  try
    AProcess.Executable := LazAutoUpdate1.AppFileWithPath;
    AProcess.Execute;
  finally
    Aprocess.Free;
  end;
end;

Список Public-методов


Список неопубликованных свойств


Развертывание нескольких обновлений в одном проекте


Если загрузка занимает много времени


Versions.ini

Формат выглядит следующим образом:

text
;файл версии LazAutoUpdate 
[versions]
GUI=0.0.2

Исходный код и последние версии


Безопасность

Windows 10

Linux


Рабочий процесс

(Техническое объяснение)

Рабочий процесс LazAutoUpdater для обновления запущенного приложения выглядит следующим образом:

Пользователь видит:


Minesadorada


From the Free Pascal wiki, page "LazAutoUpdater/ru", as it stood on 2022-01-07 after a change by FTurtle, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Версия 3, последнее изменение: WikiArchive, .