Асинхронное обновление программы на C#
Доброго времени суток, друзья! В предыдущих своих статьях (раз и два) я писал о реализации функции автоматического обновления программы и имея множество недочетов, было принято решение по ее улучшению, а также с целью сделать код более «дружелюбным», что ли. Сокращая строки и оптимизируя формат мне удалось достичь более качественной асинхронной загрузки файлов, практически исключающей вероятность подмены файла обновления (проверка контрольной суммы), а также добавлено несколько новых разработок. Там самым предпринимаю очередную попытку реабилитироваться. В работе моя программа использует следующие файлы, находящиеся в той же папке, что и исполняемый файл: Ionic.Zip.dll — реализация архивирования файлов дебага; LanguagePack.dll — собственная библиотека, содержащая перевод названия элементов формы на нужный язык; Newtonsoft.Json.dll — JSON-библиотека; ProcessesLibrary.dll — своя библиотека, содержащая список процессов; restart.exe — утилита перезапуска основного приложения; updater.exe — утилита обновления основного приложения settings.xml — файл настроек. В предыдущих версиях кода каждый файл скачивался отдельно, что доставляло массу неудобств, начиная со времени ожидания скачивания. Также отсутствовала функция проверки контрольной суммы, что не очень хорошо сказывалось на безопасности их использования. Что же такого изменилось в коде, что я решил написать третью статью о все той же истории? Читать дальше →