Ответ 1
Взгляните на Щелкните один раз. Этот поток также может сделать интересное чтение.
Я создаю приложение Windows С#. Я хочу, чтобы всякий раз, когда я нажимаю кнопку обновления в своей форме, приложение начнет искать, доступна ли новая версия на моем сервере.
Если произойдет обновление программного обеспечения.
Как это обычно обрабатывается?
Взгляните на Щелкните один раз. Этот поток также может сделать интересное чтение.
Позвольте мне сказать, что мы предлагаем полное решение для обновления, которое включает в себя:
wyUpdate обрабатывает все проблемы UAC Vista/Windows 7 и все проблемы с правами на доступ к файлам, которые неизбежно появляются при попытке обновления сложного программного обеспечения.
При этом, если вы хотите создать свой собственный updater, вот несколько советов:
Хорошим местом для начала является исходный код wyUpdate С#, о котором я упоминал выше. Вы можете cannibalize его и использовать его для ваших собственных целей. Некоторые из содержащихся в нем алгоритмов:
У нас также есть параметры файла здесь.
Поскольку автоматическое требование является обязательным, позвольте мне рассказать вам, как мы это делаем с помощью нашего AutomaticUpdater control.
Мы используем именованные каналы для связи между автономным обновлением (wyUpdate) и синтаксисом автоматического обновления, который находится в вашей программе. wyUpdate сообщает о прогрессе в автоматическом обновлении, и Automatic Updater может сообщить wyUpdate об отмене прогресса, начать загрузку, начать извлечение и т.д.
Это предотвращает выделение обновлений от вашего приложения.
На самом деле, точные именованные каналы С#, которые мы используем, включены в статью, которую я написал немного назад: Multi-process С# app like Google Chrome.
Если вы хотите, чтобы ваше приложение автоматически обновлялось с веб-сайта и обрабатывал код самостоятельно, выполните следующие действия:
Создайте файл XML с уникальным именем, например help.xml
, и создайте структуру, чтобы указать список файлов, которые будут обновляться в определенных каталогах, версии и т.д. Затем загрузите их на свой веб-сайт.
Приложение после подключения к веб-сайту загружает этот файл help.xml
и считывает содержимое, чтобы убедиться, что
новые файлы (файлы обновлений) на сайте...
Если существовала новая версия файлов, начните загрузку с URL-адреса, указанного в файле help.xml
!
Другие ответы отлично смотрятся.
Однако, если вы хотите по собственному усмотрению вручную по своему усмотрению, просто поместите XML файл с информацией, необходимой для процесса обновления (например, описание и номер версии текущей доступной версии) где-нибудь на веб-сервере, и используйте a HttpWebRequest
(или HttpWebClient
?), чтобы загрузить этот файл и обработать, как и любой XML.
Я использую этот простой метод в peSHIr Tweets, и он отлично работает. Просто обновите этот файл после того, как вы загрузите новую версию онлайн, и ваша проверка обновления найдет его. Что-нибудь об этом процессе изменчиво, как вам нравится, поскольку вы написали его сами.
Если это не частный проект для вашего собственного развлечения/использования/обучения - как в моем случае - посмотрите, если что-то уже доступно для ваших нужд!
Посмотрите: Update Checker, я написал его, чтобы показать простой способ реализации этой функции в С#.
Этот XML файл управляет обновлениями:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<myCoolApp>
<currentVersion>
<major>9</major>
<minor>1</minor>
<build>5</build>
</currentVersion>
<path>http://TestApp.exe</path>
</myCoolApp>
Основная функция Check4Update() читает файл XML и анализирует его:
XmlDocument oDom = new XmlDocument();
oDom.Load(_sXmlConfig);
string str = oDom.SelectSingleNode("//currentVersion/major").InnerText;
Int32.TryParse(str, out _nMajor);
str = oDom.SelectSingleNode("//currentVersion/minor").InnerText;
Int32.TryParse(str, out _nMinor);
str = oDom.SelectSingleNode("//currentVersion/build").InnerText;
Int32.TryParse(str, out _nBuild);
_sNewVersionPath = oDom.SelectSingleNode("//path").InnerText;