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;無需額外的步驟。