1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xcong-CheckUpdate.Net

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

CheckUpdate.Net

UpdateFileServerToQiNiu — это программа, которая заменяет использование сервера для развёртывания службы IIS. Она позволяет ускорить загрузку данных благодаря использованию сети CDN от Qiniu Cloud. Новые пользователи получают 10 ГБ бесплатного трафика в месяц. Зарегистрируйтесь.

Ценообразование CDN Интерфейс программы

Введение

CheckUpdate.Net — это приложение для проверки обновлений в среде C/S на основе .NET. Существует множество способов проверки обновлений, и сами обновления могут сильно различаться. Один из известных методов — OSAU (можно ознакомиться с его интерфейсом), но он имеет ограничение в 10 ссылок. Microsoft также предлагает удобный ClickOnce. Были опробованы и другие методы, но ни один из них не подошёл, поэтому было решено создать собственное решение.

При разработке учитывалась возможность повторного использования в .NET Framework 2.0. Основной принцип заключается в использовании WebClient для загрузки файлов из каталога веб-сайта сервера. Безопасность пока не рассматривается, что делает программу подходящей для небольших проектов.

Файлы, необходимые для клиента: UpdateFileClient.exe, UpdateFile.xml, UpdateFileCommon.dll, UpdateFileClient.exe.config (необязательно).

Примечания:

  1. UpdateFileClient.exe зависит от .NET Framework версии 2.0, если версия основного приложения выше 2.0, необходимо добавить файл UpdateFileClient.exe.config (по умолчанию совместим с версией 4.0). Если основное приложение работает на версии 2.0, удалите файл UpdateFileClient.exe.config. Версия .NET Framework 4.0 представляет собой новый CLR, который не совместим со старыми версиями CLR. Это решение в основном совместимо с Windows XP, где отдельно установлена версия .NET Framework 4.0. В Windows Vista и Win7 уже установлены версии .NET Framework 2.0 и 3.5 соответственно, которые имеют характеристики CLR 2.0; в этом случае App.config должен быть удалён.

Основные функции:

  • Поддержка обновления одного или нескольких файлов. Чтение конфигурационного файла XML на сервере для получения информации о файлах, которые необходимо изменить или добавить, а затем их загрузка. После завершения загрузки происходит обновление локальной версии. Добавление локального файла MD5 и сравнение значения MD5 в файле XML. Повторно загружаемые файлы не загружаются повторно, что экономит трафик.
  • Поддержка обновления самой программы обновления. Используя конфигурацию локального XML-файла, можно указать каталог обновлённой программы. При запуске основной программы выполняется проверка и обработка.
  • Серверная программа зависит от Qiniu Cloud, что позволяет быстрее загружать файлы через сеть CDN.

Использование:

  1. Откройте UpdateFileServerToQiNui.exe для настройки файлов сервера и заполните информацию о Qiniu Cloud, включая конфигурацию списка файлов. Управление ключами: https://portal.qiniu.com/developer/user/key. Перед использованием создайте пространство и привяжите домен. После привязки домена настройте заголовок ответа Access-Control-Allow-Methods, значение которого равно *.

  2. Добавьте файлы, необходимые для запуска основной программы, в соответствии с конфигурацией XML: Update.xml, UpdateFileClient.exe и UpdateFileCommon.dll. Основная программа должна ссылаться на UpdateFileCommon.dll. Файлы, которые должны быть обновлены в основной программе, настраиваются в узле File в конфигурации сервера XML. Начальное значение — 1. Настройте путь к файлу конфигурации сервера XML, текущую версию, соответствующее значение версии, временную папку и имя обновляемой программы (можно использовать значения по умолчанию).

  3. Реализуйте обновление программы обновления: В основной программе добавьте строку кода для проверки наличия обновлённой программы во временной папке. Если она есть, выполните операцию вырезания.

using UpdateFileCommon;
//Обнаружить новую обновлённую программу и вырезать её в корневой каталог
VersionHelper.CutNewUpdateEXE();
  1. При необходимости добавьте код для проверки обновлений: Проверка обновлений может быть выполнена при запуске программы или при нажатии кнопки. После обнаружения обновления появляется всплывающее окно с описанием обновления и опцией принудительного обновления. Соответствующие узлы в XML — ReleaseNote и IsMustUpdate. Событие NextShowEvent — это действие, которое должно быть выполнено после нажатия кнопки для следующего напоминания об обновлении.

Winform:

    //По умолчанию LoginView является формой входа
    ApplicationContext context = new ApplicationContext(new LoginView());
    //Обнаружение новой обновлённой программы в указанном каталоге и вырезание её в корневой каталог
    VersionHelper.CutNewUpdateEXE();

    //Проверить, требуется ли загрузка установочного пакета. Если нет, вернуть False
    if (!VersionHelper.GetNewVersionToDownloadSetup())
    {
        //Проверить необходимость обновления
        if (VersionHelper.IsRequiredUpdate())
        {
            string xmlPath = System.AppDomain.CurrentDomain.BaseDirectory + "UpdateFile.xml";
            if (File.Exists(xmlPath))
            {
                //Загрузить путь XML
                XmlDocument doc = new XmlDocument();
                doc.Load(VersionHelper.GetLoaclServerConfigURL(xmlPath));
                //Получить значение
                var releaseNote = VersionHelper.GetServiceReleaseNote(doc);
                var isMustUpdate = VersionHelper.GetServiceIsMustUpdate(doc);
                PromptingForm form = new PromptingForm(releaseNote, isMustUpdate);
                //Присвоить значение делегату, чтобы выполнить действие при нажатии следующей кнопки напоминания
                form.NextShowEvent += delegate
                {
                    //Выполнить xxx
                };
                context = new ApplicationContext(form);
            }
        }
    }
    
    //do something
     Application.Run(context);

WPF:

В WPF требуется специальная обработка. Добавьте Program.cs в проект WPF и добавьте метод Main. Правой кнопкой мыши щёлкните свойства проекта и установите Program в качестве запускаемого объекта.

[STAThread]
static void Main()
{
    //Обнаружить новую обновлённую программу в указанном каталоге и вырезать её в корневой каталог
    VersionHelper.CutNewUpdateEXE();

    //Проверить, требуется ли загрузка установочного пакета. Если нет, вернуть False
    if (!VersionHelper.GetNewVersionToDownloadSetup())
    {
        //Проверить необходимость обновления
        if (VersionHelper.IsRequiredUpdate())
        {
            string xmlPath = System.AppDomain.CurrentDomain.BaseDirectory + "UpdateFile.xml";
            if (File.Exists(xmlPath))
            {
                //Загрузить путь XML
                XmlDocument doc = new XmlDocument();
                doc.Load(VersionHelper.GetLoaclServerConfigURL(xmlPath));
                //Получить значение
                var releaseNote = VersionHelper.GetServiceReleaseNote(doc);
                var isMustUpdate = VersionHelper.GetServiceIsMustUpdate(doc);
                PromptingForm form = new PromptingForm(releaseNote, isMustUpdate);
                //Присвоить значение делегату, чтобы выполнить действие при нажатии следующей кнопки напоминания

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Программа для проверки обновлений при разработке Winform. Может использоваться для Winform/WPF. Основные функции включают обновление файлов, обновление самой программы и загрузку установочных пакетов. Развернуть Свернуть
C#
LGPL-2.1
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/xcong-CheckUpdate.Net.git
git@api.gitlife.ru:oschina-mirror/xcong-CheckUpdate.Net.git
oschina-mirror
xcong-CheckUpdate.Net
xcong-CheckUpdate.Net
qiniuserver