WinSparkle是Windows应用程序的插件软件更新库。它的灵感来自Andy Matuschak和其他人编写的OS X的Sparkle Framework,以共享相同的更新格式(Appcasts)并具有非常相似的用户界面。
有关WinSparkle的更多信息,请参见https://winsparkle.org。
文档:Wiki和WinSparkle.H标题。
使用WinSparkle的最简单方法是从发行版中下载预构建的WinSparkle.dll二进制文件,或使用WinSparkle Nuget软件包。预先建造的二进制文件可用于X86,X64和ARM64平台。
WinSparkle具有C API,除了C/C ++外,还可以轻松使用许多现代语言。除此之外,还有几种对流行语言的绑定:
如果您想自己建造WinSpark,可以这样做。您必须从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 Digest使用DSA私钥签名更新文件的SHA1(二进制形式)。
WinSparkle提供了生成密钥并使用OpenSSL签名更新的工具。
您需要在Windows上使用openssl.exe来使用这些工具(可作为预编译的二进制)。
另外,您可以使用Sparkle Project提供的工具,即使在MACOS或Linux上签名更新并在MacOS或Linux上签名。
bingenerate_keys.bat当您的更新准备就绪时(例如Updater.exe ),请签名并在Appcast文件中包含签名:
binsign_update.bat Updater.exe dsa_priv.pemsparkle:dsaSignature appcast文件的enclosure节点的dsasignature属性。或者, sparkle:dsaSignature可以是enclosure的子节点。 下载资源存档并查看示例/文件夹。
如果您想留在流血边缘,并使用WinSparkle版本的最新版本(尚未发布),则可以从公共存储库中获取其来源。 WinSparkle使用git,并且来源在https://github.com/vslavik/winsparkle上托管
WinSparkle使用一些依赖项的子模型,因此在检查树后必须初始化它们:
$ git clone https://github.com/vslavik/winsparkle.git
$ cd winsparkle
$ git submodule init
$ git submodule update
然后如上所述编译WinSparkle;无需额外的步骤。