CheckUpdate.Net
UpdateFileServerToQiNiu — это программа, которая заменяет использование сервера для развёртывания службы IIS. Она позволяет ускорить загрузку данных благодаря использованию сети CDN от Qiniu Cloud. Новые пользователи получают 10 ГБ бесплатного трафика в месяц. Зарегистрируйтесь.
CheckUpdate.Net — это приложение для проверки обновлений в среде C/S на основе .NET. Существует множество способов проверки обновлений, и сами обновления могут сильно различаться. Один из известных методов — OSAU (можно ознакомиться с его интерфейсом), но он имеет ограничение в 10 ссылок. Microsoft также предлагает удобный ClickOnce. Были опробованы и другие методы, но ни один из них не подошёл, поэтому было решено создать собственное решение.
При разработке учитывалась возможность повторного использования в .NET Framework 2.0. Основной принцип заключается в использовании WebClient для загрузки файлов из каталога веб-сайта сервера. Безопасность пока не рассматривается, что делает программу подходящей для небольших проектов.
Файлы, необходимые для клиента: UpdateFileClient.exe, UpdateFile.xml, UpdateFileCommon.dll, UpdateFileClient.exe.config (необязательно).
Откройте UpdateFileServerToQiNui.exe для настройки файлов сервера и заполните информацию о Qiniu Cloud, включая конфигурацию списка файлов. Управление ключами: https://portal.qiniu.com/developer/user/key. Перед использованием создайте пространство и привяжите домен. После привязки домена настройте заголовок ответа Access-Control-Allow-Methods, значение которого равно *.
Добавьте файлы, необходимые для запуска основной программы, в соответствии с конфигурацией XML: Update.xml, UpdateFileClient.exe и UpdateFileCommon.dll. Основная программа должна ссылаться на UpdateFileCommon.dll. Файлы, которые должны быть обновлены в основной программе, настраиваются в узле File в конфигурации сервера XML. Начальное значение — 1. Настройте путь к файлу конфигурации сервера XML, текущую версию, соответствующее значение версии, временную папку и имя обновляемой программы (можно использовать значения по умолчанию).
Реализуйте обновление программы обновления: В основной программе добавьте строку кода для проверки наличия обновлённой программы во временной папке. Если она есть, выполните операцию вырезания.
using UpdateFileCommon;
//Обнаружить новую обновлённую программу и вырезать её в корневой каталог
VersionHelper.CutNewUpdateEXE();
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 )