Winsparkle-это библиотека обновления программного обеспечения для приложений для приложений Windows. Он сильно вдохновлен Sparkle Framework для OS X, написанной Энди Матушаком и другими, до такой степени, что обмениваться тем же форматом обновлений (приложения) и очень похожий пользовательский интерфейс.
См. Https://winsparkle.org для получения дополнительной информации о Winsparkle.
Документация: Wiki и заголовок Winsparkle.h.
Самый простой способ использовать Winsparkle - либо загрузить предварительно построенный двоичный файл WinSparkle.dll из выпусков, либо использовать пакет WinSparkle Nuget. Предварительные двоичные файлы доступны для платформ x86, x64 и arm64.
У Winsparkle есть C API, который позволяет легко использовать многие современные языки в дополнение к C/C ++. В дополнение к этому, существует несколько привязков для популярных языков:
Если вы предпочитаете строить Winsparkle самостоятельно, вы можете это сделать. Вам придется компилировать из оформления GIT; Некоторые из зависимостей включены в качестве подмодулей GIT.
Проверьте источники и инициализируйте подмодули:
$ git clone https://github.com/vslavik/winsparkle.git
$ cd winsparkle
$ git submodule init
$ git submodule update
Чтобы составить библиотеку, просто откройте решение WinSparkle.sln (или решение, соответствующее вашей версии компилятора) и создайте ее.
На данный момент предоставляются проекты для Visual C ++ (2010 и старше), поэтому вам это понадобится (Express/Community Edition достаточно). В принципе, в коде нет ничего, что не позволяет его составить другие компиляторы.
В каталоге Cmake также есть неподдерживаемые файлы сборки Cmake.
Winsparkle использует точно такой же механизм для подписания и проверки подписи, что и Sparkle Project. Его инструменты и методы проверки полностью совместимы.
Вы можете использовать любой совместимый способ подписать свое обновление. Чтобы достичь этого, вам необходимо подписать SHA1 (в двоичной форме) вашего файла обновления с помощью закрытого ключа DSA, используя SHA1 Digest.
WinSparkle предоставляет инструменты для создания ключей и подписи обновления с помощью OpenSSL.
Вам нужен openssl.exe доступный в Windows, для использования этих инструментов (доступных в качестве предварительно скомпилированного двоичного файла).
В качестве альтернативы, вы можете генерировать ключи и подписать свои обновления даже на MacOS или Linux, используя инструменты, предоставленные Sparkle Project.
bingenerate_keys.bat Когда ваше обновление будет готово (например, Updater.exe ), подпишите его и включите подпись в файл приложения:
binsign_update.bat Updater.exe dsa_priv.pemsparkle:dsaSignature Узела enclosure вашего файла Appcast. В качестве альтернативы sparkle:dsaSignature может быть дочерним узлом enclosure . Загрузите архив источников и посмотрите на примеры/ папку.
Если вы хотите остаться на Bleeding Edge и использовать последнюю, еще не выпущенную, версию Winsparkle, вы можете получить его источники от общественного репозитория. Winsparkle использует GIT, а источники размещены на GitHub по адресу https://github.com/vslavik/winsparkle
Winsparkle использует подмодули для некоторых зависимостей, поэтому вы должны инициализировать их после проверки дерева:
$ git clone https://github.com/vslavik/winsparkle.git
$ cd winsparkle
$ git submodule init
$ git submodule update
Затем составьте WinSparkle, как описано выше; Никаких дополнительных шагов не требуется.