Какие есть хорошие решения для обработки автоматических обновлений программного обеспечения через Интернет для проектов форм Windows? Я знаю о Microsoft One-Click, но в настоящее время меня это не интересует.
автоматические обновления программного обеспечения Windows
Ответы (8)
ClickOnce хорош для файлов cookie, но имеет некоторые ограничения в отношении безопасности (например, невозможно создать значок на рабочем столе, нет доступа к COM и т. Д.)
Предполагая, что вы используете MSI для установки своего приложения. Используйте WIX (http://wix.sourceforge.net/) для создания патча (.msp). Вы захотите изучить патч для наименее привилегированных учетных записей (LUA) для Vista, поскольку UAC вас облажает, если вы этого не сделаете.
Затем ваше приложение делает следующее:
- Проверить наличие новой версии по HTTP
- Загрузите MSP (будьте осторожны с тем, куда вы отправляете его в Vista из-за UAC)
- Запустите Shim exe, который
- ждет, пока ваше приложение закроется
- запускает msp (в неинтерактивном режиме)
- перезапускает ваше приложение
Все это может происходить автоматически за кулисами без вмешательства пользователя как в XP, так и в Vista.
Хорошее место для начала и с WIX в целом:
http://www.tramontana.co.hu/wix/index.php (Урок 4 посвящен обновлениям)
Чтобы не спамить, наша компания предлагает решение для автоматического обновления. Он состоит из 3 частей:
- wyUpdate с открытым исходным кодом, который представляет собой средство обновления, написанное на C #.
- бесплатный элемент управления AutomaticUpdater
- wyBuild используется для создания исправлений и управления вашими версиями.
wyUpdate обрабатывает все проблемы UAC в Vista / Windows 7 и все проблемы с доступом к файлам, которые неизбежно возникают, когда вы пытаетесь обновить сложное программное обеспечение.
Одно время мы писали свои собственные ... Это была плохая идея. Во многих случаях вы можете использовать ClickOnce. Фактически мы используем продукт под названием AutoUpdate +, который мы можем порекомендовать. Его особенность заключается в том, что он может избежать проблем с всплывающими окнами UAC.
это действительно зависит от того, насколько сложен процесс обновления.
У меня было несколько клиентов с простыми потребностями, и мы создали нашу собственную настройку процесса, которая справилась с этим. Примерно за 3 часа разработки у нас есть полностью рабочее решение, которое удовлетворяет все их потребности.
Microsoft в один клик? Вы имеете в виду ClickOnce? Нажмите один раз, чтобы выиграть форму, это очень приятно. Развертывание происходит быстро, и весь процесс обновления выполняется сам по себе.
но ClickOnce - лучшее, что вы можете иметь и вы можете выбрать, нужно ли пользователям загружать новую версию, использовать старые, возвращаться к предыдущим версиям и т. д.
вы всегда можете создать свое собственное решение, проверить номер версии файла настроек XML на каком-либо веб-адресе, если он новее, чем текущий, изменить пользователя, например, чтобы загрузить новую версию ...
Я также слышал, что это называется clicktwice: +> Решение WIX больше меня интересовало. Есть ли какие-нибудь примеры приложений (с исходным кодом) для использования этой техники?
Вот решение с открытым исходным кодом, которое я написал для удовлетворения конкретных потребностей, которые у нас были для приложений 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)