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

Простым вариантом обновления программы может служить bat файл который будет копировать содержимое сетевой папки в локальную, но после него остается командное окно которое портит общий вид.

Альтернативным способом может быть копирование необходимых файлов самой программой при запуске, но заменить запущенное приложение не получится, поэтому необходимо вынести функциональность которая копирует файлы в отдельный проект и из него после копирования запускать основное приложение.

Сначала настроим глобальные переменные (правильнее их получать из xml файла)

#region Data
// Папка с обновлениями
private String FUpdateFolder = @"srvmyprog";
// Куда копируем
private String FTargetFolder;
// Что запускаем
private String FRunFile = "myprog.exe";
#endregion

А теперь простоскопируем все файлы из указанной сетевой папки и запустим наше основное приложение

privatevoid Form1_Load(object sender, EventArgs e)
{

    // Проверить доступность сетевого пути
    DirectoryInfo _dirUpdate = new DirectoryInfo(FUpdateFolder);
    DirectoryInfo _dirMapInfo;
    if (!_dirUpdate.Exists)
    {
        MessageBox.Show("Неудалось получить доступ к " + FUpdateFolder, "Внимание!");
        return;
    }
    pbRuner.Maximum = _dirUpdate.GetFiles().Count();
    pbRuner.Value = 0;

    // Копируем файлы
    try
    {
        foreach (var file in _dirUpdate.GetFiles())
        {
            pbRuner.Value++;
            file.CopyTo(FTargetFolder + @"" + file.Name, true);
        }
    }
    catch (Exception ex)
    {
              MessageBox.Show("Один из копируемых файлов скорее всего открыт. n" + ex.ToString(), "Внимание!");
        return;
    }

// Запустить основную программу
try
{
    Process.Start(FTargetFolder + @"" + FRunFile);
}
catch (Exception ex)
{
    MessageBox.Show(ex.ToString());
}
   …
}

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

P.S. Если описанной функциональности не достаточно, то тогда уже стоит обратить внимание на такую технологию как ClickOnce.

P.P.S. Еще ссылки 

http://habrahabr.ru/blogs/net/72227/

http://msdn.microsoft.com/ru-ru/vbasic/ms789088.aspx

http://riotlabs.ru/blog/post/ClickOnce_Tecnology.aspx

http://www.techdays.ru/videos/1274.html

Автор материала: FAQdotNet

Мой блог находят по следующим фразам

Данная статья "Как обновить программу на C#?" размещена на сайте Компьютерные сети и многоуровневая архитектура интернета (conlex.kz) в ознакомительных целях.

Уточнения, корректировки и обсуждения статьи "Как обновить программу на C#?" - под данным текстом, в комментариях.

Ответственность, за все изменения, внесённые в систему по советам данной статьи, Вы берёте на себя.

Копирование статьи "Как обновить программу на C#?", без указания ссылки на сайт первоисточника Компьютерные сети и многоуровневая архитектура интернета (conlex.kz), строго запрещено.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *