Auto Patcher (эффективное автоматическое обновление)

Мне нужен модуль автоматического обновления, который обнаруживает измененные файлы (путем сравнения файлов на стороне клиента и сервера) и загружает только измененные файлы. Я также хочу, чтобы он дал мне живой статус (чтобы показать его на панели процессов или что-то в этом роде)

Сценарий таков, что в сети около тысячи клиентов, использующих одно и то же приложение. Если доступна новая версия приложения, все они должны получить новую версию. Но пропускная способность ограничена, поэтому каждый раз давать им полный установщик не очень эффективно. (Что мы делаем в настоящее время)

Я немного поискал и нашел IcePatch2. Он делает именно то, что я хочу: получать самые новые файлы с сервера при запуске патчера. Но проблема в том, что клиенты пишут на C#, и я не могу использовать IcePatch2 внутри своего приложения. (Мне нужно запустить его как отдельный процесс или написать COM или что-то еще для взаимодействия с IcePatch2Client)

На данный момент лучшим решением, которое я нашел, является получение .NET Application Updater Component и настроить его под свои нужды. Но я предпочитаю решение, которое не требует от меня поддержки другого приложения.

Любая идея?


person Aidin    schedule 01.12.2010    source источник
comment
Спасибо! (^L^) Я редактирую вопрос.   -  person Aidin    schedule 01.12.2010
comment
Полностью запустить средство обновления внутри вашего приложения не получится. Windows блокирует файлы запущенных программ, чтобы их нельзя было заменить. Таким образом, вам нужен либо внешний патчер, либо лаунчер, который (почти) никогда не патчится.   -  person CodesInChaos    schedule 01.12.2010


Ответы (2)


Мы используем wyBuild.

Он производит бинарные дельта-патчи — даже лучше, чем на уровне файлов. Он также имеет компонент автоматического обновления клиента: wyUpdate.

person Tim Lloyd    schedule 01.12.2010

Мы используем AppLifeUpdate. Вы можете создавать пакеты обновлений, содержащие только измененные файлы. Я не уверен, что он делает двоичные дельты. Это компонент .NET, который может дополнительно использовать службу, которую вы устанавливаете, для выполнения обновлений установщика с повышенными правами (на самом деле это необходимо только для изменений, затрагивающих всех пользователей в системе).

person Garo Yeriazarian    schedule 01.12.2010