Главная » Язык программирования C#

Обновление программы на C#

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

Как обновить программу на C# через Интернет?

Обновление программы будет производиться путем самой простой замены старой версии программы на новую. Но при этом нужно учесть, что на выходе у нас должен получить exe-файл с таким же названием что и прежде и на том же месте на диске. Тут возникают несколько вопросов. Если сама программа, сверить свою версию с последней приходит к решению, что необходимо качать обновления, то как его потом подсунуть на свое место? Сразу становится ясно, что программа не сможет сделать это, пока она работает. А посему, вот план действий:

  1. Проверка наличия обновления путем сверки локальной версии файла и последней версии файла на сервере.
  2. Скачивание последней версии программы и укладывание в той же папке что рабочая программа, только с другим именем. Например, прибавив какой то атрибут аля «new». Этот пункт подразумевает то, что программа ждет, пока обновление будет окончательно загружено.
  3. Выпускаем из ресурсов программы другую программу, которая и будет заменять местами новую и старую версию основной программы. (Эту программа-обновлялку можно при установке просто положить рядом и запускать по надобности, либо же каждый раз выпускать на волю из ресурсов).
  4. Запускаем нашу программу-обновлялку. Убеждаемся в том, что она запустилась и завершаем свою работу.

Далее идет алгоритм работы программы-обновлялки:

  1. Убеждаемся в том, что наша основная программа завершила работу.
  2. Удаляем старую версию файла.
  3. Переименовываем новую версию файла на стандартное имя.
  4. Запускаем новую версию файла.
  5. Убеждаемся в том, что новая программа успешна выполняется и отрубаемся.

Так же самым первым пунктом в главную программу, еще до момента проверки наличия обновлений, можно вставить пункт, в котором программа будет проверять лежит ли рядом с ним наша программа-обновлялка и в случае положительного ответа — удаляет.

Код для обновления программы на C#

Сам код программы, который будет выполнять заданные действия, не кажется сложным и пишется довольно просто. Далее идет мой метод, который скачивает обновление, выпускает из ресурсов программку-обновлялку и запускает ее, после чего вырубается.

private void load_obnovlenie(string path)
    {
        try
        {
            WebClient w = new WebClient();
            string adres = Application.StartupPath;
            adres += "\\new.program.exe";
            w.DownloadFile(new Uri(path), adres);
            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);
        }
    }

А вот ниже основная логика программы-обновлялки:

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();

Ее вы можете приукрасить различными проверками, которые были указаны в моем алгоритме. Вот таким образом происходит обновление программы на C#(мой способ).

2 комментариев к записи “Обновление программы на C#
  1. i86 в cказал :

    Откуда переменная obnov?

    • admin в cказал :

      А тут нет переменной obnov. Данное слово в коде используется только как название нашей программы, которая заменяет старую версию основной программы на новую. К тому же именно таким именем названо соответствующее приложение в ресурсах нашей главной программы, посему при обращении через Properties.Resources.obnov мы стучимся именно к ней.

Добавить комментарий

Ваш комментарий появится после модерации.