Оновлення програми на C#
Будь-яку відносно довговічну і складну програму, яка використовуватиметься не тільки на одному комп'ютері самого розробника, необхідно час від часу оновлювати. Саме алгоритм роботи модуля оновлення програми написаної на C# ми розглянемо у цій статті.
Як оновити програму на C# через Інтернет?
Оновлення програми буде здійснюватись шляхом найпростішої заміни старої версії програми на нову. Але при цьому потрібно врахувати, що на виході у нас повинен отримати exe-файл з такою самою назвою, що і раніше, і на тому ж місці на диску. Тут виникає кілька запитань. Якщо сама програма, звірити свою версію з останньою, приходить до рішення, що необхідно качати оновлення, то як його потім підсунути на своє місце? Відразу стає зрозумілим, що програма не зможе зробити це, поки вона працює. А тому, ось план дій:
- Перевірка наявності оновлення шляхом звіряння локальної версії файлу та останньої версії файлу на сервері.
- Скачування останньої версії програми та укладання у тій же папці що робоча програма, тільки з іншим ім'ям. Наприклад, додавши якийсь атрибут аля "new". Цей пункт передбачає те, що програма чекає, доки оновлення буде остаточно завантажено.
- Випускаємо з ресурсів програми іншу програму, яка і замінятиме місцями нову та стару версію основної програми. (Цю програму-обновлялку можна при встановленні легко покласти поруч і запускати по потребі, або ж щоразу випускати на волю з ресурсів).
- Запускаємо нашу програму-оновлення. Переконуємось у тому, що вона запустилася і завершуємо свою роботу.
Далі йде алгоритм роботи програми-оновлення:
- Переконуємось у тому, що наша основна програма завершила роботу.
- Вилучаємостару версію файлу.
- Перейменовуємо нову версію файлу стандартне ім'я.
- Запускаємо нову версію файлу.
- Переконуємось у тому, що нова програма успішно виконується та відрубуємось.
Так само першим пунктом в головну програму, ще до моменту перевірки наявності оновлень, можна вставити пункт, в якому програма перевірятиме чи лежить поряд з ним наша програма-оновлення і в разі позитивної відповіді — видаляє.
Код оновлення програми на C#
Сам код програми, який виконуватиме задані дії, не здається складним і пишеться досить просто. Далі йде мій спосіб, який завантажує оновлення, випускає з ресурсів програму-обновлялку і запускає її, після чого вирубується.
[csharp]private void load_obnovlenie(string path) try WebClient w = new WebClient(); string adres = Application.StartupPath; adres += "\\new.program.exe"; w.DownloadFile(new Uri(path), address); File.WriteAllBytes(Application.StartupPath + "\\obnov.exe", Properties.Resources.obnov); Process.Start(Application.StartupPath + "\\obnov.exe"); Process.GetCurrentProcess().Kill(); > catch (Exception ex) MessageBox.Show(ex.Message); > >[/csharp]
А ось нижче основна логіка програми-оновлення:
[csharp]string path = Application.StartupPath + "\\program.exe"; string path1 = Application.StartupPath + "\\new.program.exe"; File.Delete(path); File.Move(path1, path); Process.Start(path); Process.GetCurrentProcess().Kill();[/csharp]
Її можна прикрасити різними перевірками, які були вказані в моєму алгоритмі. Ось таким чином відбувається оновлення програми на C# (мій спосіб).