Автоматическое обновление программного обеспечения Windows

Каковы некоторые хорошие решения для обработки автоматических обновлений программного обеспечения для веб-сайтов для проектов окон? Я знаю, что Microsoft в одно нажатие, но в это время меня это не интересует.

Ответы

Ответ 1

ClickOnce хорош для файлов cookie, но имеет некоторые ограничения по безопасности (т.е. не может создавать значок рабочего стола, не иметь доступа к COM и т.д.)

Предполагая, что вы используете MSI для установки вашего приложения. Используйте WIX (http://wix.sourceforge.net/), чтобы создать патч (.msp). Вы захотите заглянуть в "Приоритетную учетную запись пользователя" (LUA) для Vista, поскольку UAC задержит вас, если вы этого не сделаете.

Затем ваше приложение делает следующее:

  • Проверить новую версию через HTTP
  • Загрузите MSP (будьте осторожны с тем, где вы DL это в Vista из-за UAC)
  • Начните операцию Shim, чтобы
  • ждет закрытия вашего приложения.
  • запускает msp (в неинтерактивном режиме)
  • перезагружает ваше приложение.

Это может произойти автоматически за кулисами при нулевом взаимодействии с пользователем как с XP, так и с Vista.

Хорошее место для начала, и с WIX в целом:

http://www.tramontana.co.hu/wix/index.php (Урок 4 обновляется)

Ответ 2

Не слишком спам, но наша компания предлагает решение для автоматического обновления. Он состоит из трех частей:

wyUpdate обрабатывает все проблемы UAC Vista/Windows 7 и все проблемы с правами на доступ к файлам, которые неизбежно появляются при попытке обновления сложного программного обеспечения.

Ответ 3

Мы написали свои собственные в свое время... Это была не очень хорошая идея. Во многих случаях вы можете использовать ClickOnce. Мы фактически используем продукт под названием AutoUpdate +, который мы можем рекомендовать. Особенно его особенностью является то, что он может избежать проблем с всплывающими окнами UAC.

Ответ 4

это действительно зависит от того, насколько необходим комплекс процесса обновления.

У меня было несколько клиентов с простыми потребностями, где мы создали собственную процедуру настройки, которая обрабатывала ее, примерно через 3 часа разработки у нас есть полностью работающее решение, отвечающее всем их потребностям.

Ответ 5

Microsoft одним щелчком мыши? Вы имеете в виду ClickOnce? Нажмите один раз, чтобы выиграть форму очень приятно. Развертывание выполняется быстро, и все процессы обновления обрабатываются сами по себе.

Ответ 6

но ClickOnce - это лучшее, что вы можете иметь, и вы можете выбрать, нужно ли пользователям загружать новую версию, использовать старые, идти назад версии и т.д.

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

Ответ 7

Я также слышал, что он называется clicktwice: + > Решение WIX больше того, что меня интересует. Существуют ли какие-либо примеры приложений (с источником) для использования этой техники?

Ответ 8

Вот решение с открытым исходным кодом, которое я написал для удовлетворения конкретных потребностей, которые у нас были для WinForms и приложений WPF. Общая идея состоит в том, чтобы иметь максимальную гибкость при наименьших затратах.

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

Холодные обновления (требующие перезагрузки приложения) также поддерживаются и выполняются автоматически, если для задачи не задано "горячая замена".

Это объединит до одной DLL, размером менее 70 КБ.

Подробнее на http://www.code972.com/blog/2010/08/nappupdate-application-auto-update-framework-for-dotnet/

Код находится в http://github.com/synhershko/NAppUpdate (лицензия под лицензией Apache 2.0)