10:18 Урок №11 - Простой UPDATER | |
Доброго времени суток мои читатели! Сегодня я Вам расскажу, как можно сделать простого updater'a. Итак, для начала необходимо определить какой updater для нас более подходящий, либо это будет отдельный маленький проект, либо внутри основного проекта. Как это работает? Схема работы проста, в программу зашивается номер её версии, updater сверяет текущую версию программы с версией программы хранящейся на сервере либо зашитую в updater'a. В программе EGAIS Install я использовал примерно такую же схему. Создано у меня 2 проекта, 1 с ЕГАИСом, а второй с UPDATERом, каждая прога формирует свой файл с версией, а уже UPDATER сравнивает их и решает требуется ли новая версию клиенту или же у него актуальная. Чтобы не путаться в версиях, я держу рабочим всегда только один UPDATER который качает именно самую актуальную версию программы, происходят все закачки именно на нашем хостинге. Немного кода : if (File.Exists("egaisver.txt") == true) \\ Проверяем наличие файла с версией, в случае если он есть, то удаляем чтобы избежать старых ф-лов от прошлых версий программы
{ File.Delete("egaisver.txt"); File.WriteAllText(Application.StartupPath + "\\egaisver.txt", "1.6.16.2");\\Записываем данные в новый файл } else { File.WriteAllText(Application.StartupPath + "\\egaisver.txt", "1.6.16.2"); \\Ну а если файла нет } После того, как формируем файл с версией ЕГАИС мы, допустим проверяем наличие новой версии и ПО скачивает с хостинга нашего Updater'a, узнать как это сделать можно в нашем уроке по асинхронной загрузке В свою очередь Updater при запуске формирует файл, по методу как указан выше и исходя из схемы, становится понятно, что он дальше сравнивает эти два файла и в случае, если они разные, то он качает самую свежую версию программы. Выглядит это в коде Updater'a вот так: ФУНКЦИЯ ЗАГРУЗКИ ФАЙЛА private void download_Click(object sender, EventArgs e) { if (File.Exists("egaisinstall.exe") != true && File.Exists("egaisver.txt") != true && File.Exists("version.txt") == true) { downloading(); } status.Text = "Идет проверка актуальности версии"; if (File.Exists("version.txt") == true && File.Exists("egaisver.txt") == true) { checkversion(); } else { status.Text = "Ошибка проверки версии Вашей программы!"; } } ФУНКЦИЯ ПРОВЕРКИ ВЕРСИИ private void checkversion() { StreamReader sr1 = new StreamReader(Application.StartupPath + "\\version.txt"); StreamReader sr2 = new StreamReader(Application.StartupPath + "\\egaisver.txt"); string line1 = sr1.ReadLine(); string line2 = sr2.ReadLine(); if (line1 != line2) { status.Text = "Требуется обновление программы!"; if (File.Exists("egaisinstall.exe") == true) { File.Delete("egaisinstall.exe"); downloading(); } else { downloading(); } } if (line1 == line2) { status.Text = "У вас самая актуальная версия программы!"; } sr1.Close(); sr2.Close(); } Вы также можете использовать абсолютно любой метод реализации обновления ПО, начиная от Click Once и заканчивая собственным ПО для обновления
| |
Категория: Уроки по C# | Просмотров: 626 | |
Всего комментариев: 0 | |