2016-04-11 3 views
0

Я пытаюсь найти лучший способ обновления моей программы с помощью Inno Setup и Inno Download Plugin (IDP). Моя программа имеет размер около 3,5 ГБ, поэтому найти способ, когда пользователю не нужно скачивать 3.5gb каждый раз, когда я выпускаю обновление на 100mb, действительно важно.Inno Download Plugin - Загрузка только загруженных файлов

В настоящее время я IDP загрузить все файлы для моей программы с моего FTP, используя код ниже:

procedure InitializeWizard(); 
begin 
    idpSetLogin('%%username%%', '%%password%%'); 
    {Add all files in URL, including subdirectories} 

    idpAddFtpDir('%%myftp%%','', ExpandConstant('{tmp}'), true); 

    idpDownloadAfter(wpReady); 
end; 

Что является лучшим способом для доставки обновлений пользователей, так что у них есть только загрузить обновленные файлы и не все 3.5gb?

+0

Как вы узнаете, какие файлы являются новыми? Вы где-то сохраняете копию предыдущих файлов? –

+0

Я не уверен, что лучший метод, но моя первоначальная идея заключалась в том, чтобы идентифицировать все новые файлы по дате их загрузки на сервер. например Если файл имеет дату, измененную после изменения текущей даты файла, затем загрузите и замените. однако, если это не очень хороший способ сделать это, пожалуйста, скажите мне. Обновленные файлы должны заменять старые файлы на компьютере пользователя. – callum

+0

Итак, загруженные файлы не являются установщиками или (ZIP) архивами? Это фактические файлы, которые вы копируете на машину пользователя? –

ответ

1

Плагин Inno Download Plugin не имеет API для получения метки времени на сервере.

Так что вам нужно решить это по-другому.

Проще всего реализовать в Inno Setup, было бы иметь онлайн-сервис (скажем, простой скрипт PHP), который установщик выведет с версией ряд установленных программ и номер версии установленной программы. Служба будет перечислять файлы, которые нуждаются в обновлении, и установщик будет действовать соответствующим образом. Или вы можете установить установщиком отметки времени всех установленных файлов и службу для проверки файлов по одному, перечисляя те, которые нуждаются в обновлении.

Если вы не можете создать такой онлайн-сервис, другой вариант имеет статический текстовый файл со списком файлов и меткой времени. Загрузите файлы на FTP-сервер. Файл необходимо обновлять каждый раз при обновлении файлов на сервере. Установщик загрузит файл, проанализирует его и решит, какие файлы необходимо обновить.

+1

Спасибо за помощь. Похоже, мне нужно сделать еще несколько исследований в PHP-скрипте, чтобы он перечислял все файлы, которые нуждаются в обновлении на основе текущей версии пользователей. – callum

+0

@Martin: Как вы думаете, [TimeStamps] (https://winscp.net/eng/docs/timestamp) на 100% достаточно надежны на FTP? –

+0

@LaurieStearn Извините, я не понимаю ваш вопрос. Мой ответ не рекомендует использовать FTP-метки времени. –

Смежные вопросы