Подтвердить что ты не робот

Как я могу проверить проверку приложений на С#?

Я создаю приложение Windows С#. Я хочу, чтобы всякий раз, когда я нажимаю кнопку обновления в своей форме, приложение начнет искать, доступна ли новая версия на моем сервере.

Если произойдет обновление программного обеспечения.

Как это обычно обрабатывается?

4b9b3361

Ответ 2

Позвольте мне сказать, что мы предлагаем полное решение для обновления, которое включает в себя:

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

При этом, если вы хотите создать свой собственный updater, вот несколько советов:

Создание собственного обновления

Хорошим местом для начала является исходный код wyUpdate С#, о котором я упоминал выше. Вы можете cannibalize его и использовать его для ваших собственных целей. Некоторые из содержащихся в нем алгоритмов:

  • Полная поддержка Windows Vista/Windows 7 UAC
  • Возможность ограниченным пользователям проверять и обновлять, если у них есть учетные данные.
  • Поддержка неустойчивого корпоративного inernet. (Если вы когда-либо работали с корпорацией, это настоящая проблема).
  • Быстрое извлечение, исправление и установка файлов.
  • Поддержка реестра.
  • Откат файлов и реестра при ошибке или аннулировании пользователем
  • Самообновление (без файлов осталось)

У нас также есть параметры файла здесь.

Автоматическое обновление

Поскольку автоматическое требование является обязательным, позвольте мне рассказать вам, как мы это делаем с помощью нашего AutomaticUpdater control.

Мы используем именованные каналы для связи между автономным обновлением (wyUpdate) и синтаксисом автоматического обновления, который находится в вашей программе. wyUpdate сообщает о прогрессе в автоматическом обновлении, и Automatic Updater может сообщить wyUpdate об отмене прогресса, начать загрузку, начать извлечение и т.д.

Это предотвращает выделение обновлений от вашего приложения.

На самом деле, точные именованные каналы С#, которые мы используем, включены в статью, которую я написал немного назад: Multi-process С# app like Google Chrome.

Ответ 3

Если вы хотите, чтобы ваше приложение автоматически обновлялось с веб-сайта и обрабатывал код самостоятельно, выполните следующие действия:

  1. Создайте файл XML с уникальным именем, например help.xml, и создайте структуру, чтобы указать список файлов, которые будут обновляться в определенных каталогах, версии и т.д. Затем загрузите их на свой веб-сайт.

  2. Приложение после подключения к веб-сайту загружает этот файл help.xml и считывает содержимое, чтобы убедиться, что новые файлы (файлы обновлений) на сайте...

  3. Если существовала новая версия файлов, начните загрузку с URL-адреса, указанного в файле help.xml!

Ответ 4

Другие ответы отлично смотрятся.

Однако, если вы хотите по собственному усмотрению вручную по своему усмотрению, просто поместите XML файл с информацией, необходимой для процесса обновления (например, описание и номер версии текущей доступной версии) где-нибудь на веб-сервере, и используйте a HttpWebRequest (или HttpWebClient?), чтобы загрузить этот файл и обработать, как и любой XML.

Я использую этот простой метод в peSHIr Tweets, и он отлично работает. Просто обновите этот файл после того, как вы загрузите новую версию онлайн, и ваша проверка обновления найдет его. Что-нибудь об этом процессе изменчиво, как вам нравится, поскольку вы написали его сами.

Если это не частный проект для вашего собственного развлечения/использования/обучения - как в моем случае - посмотрите, если что-то уже доступно для ваших нужд!

Ответ 5

Посмотрите: 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;