Авто Патчер (Эффективный Автообновитель) - PullRequest
9 голосов
/ 01 декабря 2010

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

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

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

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

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 01 декабря 2010

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

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

1 голос
/ 01 декабря 2010

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

...