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

Какие есть хорошие решения для обработки автоматических обновлений программного обеспечения через Интернет для проектов форм Windows? Я знаю о Microsoft One-Click, но в настоящее время меня это не интересует.


person Community    schedule 15.10.2008    source источник
comment
Расскажите, почему ClickOnce вам не подходит? Инструмент достаточно хорош, так что вам будет сложно найти что-то, что с ним конкурирует.   -  person Joel Coehoorn    schedule 15.10.2008


Ответы (8)


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

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

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

  1. Проверить наличие новой версии по HTTP
  2. Загрузите MSP (будьте осторожны с тем, куда вы отправляете его в Vista из-за UAC)
  3. Запустите Shim exe, который
  4. ждет, пока ваше приложение закроется
  5. запускает msp (в неинтерактивном режиме)
  6. перезапускает ваше приложение

Все это может происходить автоматически за кулисами без вмешательства пользователя как в XP, так и в Vista.

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

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

person Greg Dean    schedule 15.10.2008
comment
не без взлома нельзя (если приложение удалено, оно не удаляется) - person Greg Dean; 15.10.2008

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

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

person Wyatt O'Day    schedule 23.02.2010

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

person Testing123    schedule 22.06.2010

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

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

person Mitchel Sellers    schedule 15.10.2008

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

person Patrick Desjardins    schedule 15.10.2008

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

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

person balexandre    schedule 15.10.2008

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

person Community    schedule 15.10.2008
comment
Создание такой системы - непростое дело. Я сделал это, но так и не нашел подробного руководства. - person Greg Dean; 15.10.2008

Вот решение с открытым исходным кодом, которое я написал для удовлетворения конкретных потребностей, которые у нас были для приложений 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)

person synhershko    schedule 17.08.2010