автоматическое обновление программного обеспечения Windows - PullRequest
13 голосов
/ 15 октября 2008

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

Ответы [ 8 ]

15 голосов
/ 15 октября 2008

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 посвящен обновлениям)

5 голосов
/ 23 февраля 2010

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

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

3 голосов
/ 22 июня 2010

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

1 голос
/ 15 октября 2008

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

1 голос
/ 15 октября 2008

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

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

0 голосов
/ 17 августа 2010

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

0 голосов
/ 15 октября 2008

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

0 голосов
/ 15 октября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...