WinSparkle沉默自动更新

WinSparkle silent automatic update

本文关键字:更新 沉默 WinSparkle      更新时间:2023-10-16

我正在尝试在使用visualc++创建的应用程序中使用WinSparkle库进行自动更新。

我发现它们有"静默更新"功能。我认为它不应该显示

的形式

"A new version of ... is available"带有按钮"Skip this version"、""Remaind me later""answers""Install update""。

存在参数sparkle:installerArguments,其值可能为SILENT。但是如何使用它呢?我想我需要把它放到服务器上的xml文件中:

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle">
<channel>
    <title>Example app updates</title>
    <link>http://winsparkle.org/example/appcast.xml</link>
    <description>Appcast for Example app updates.</description>
    <language>en</language>
    <item>
      <title>Version 1.5.4</title>
      <sparkle:releaseNotesLink>http://winsparkle.org/example/relnotes.html</sparkle:releaseNotesLink>
      <sparkle:installerArguments>SILENT</sparkle:installerArguments>
      <pubDate>Tue, 15 Sep 2012 18:11:12 +0200</pubDate>
      <enclosure url="http://downloads.sourceforge.net/project/poedit/poedit/1.5/poedit-1.5.4-setup.exe"
                 sparkle:version="1.5.4"
                 type="application/octet-stream"/>
    </item>
  </channel>
</rss>

这没有帮助-我仍然有通知关于新版本的表单。

如何进行"静音"更新?

正确的答案是您所引用的UI对话框不能被抑制。"/SILENT"选项在运行时传递给机箱,以便包含更新的安装程序可以静默运行("/SILENT"是InnoSetup的一个功能)。

但是WinSparkle不支持没有用户确认的更新。这是大多数软件应该使用的行为。当然,在某些情况下,例如大型公司环境或无人值守的服务器,我们希望更新是自动的,而不需要用户交互。WinSparkle是没有用的(除非你修改代码和编译自己)

Reed文档https://github.com/vslavik/winsparkle/wiki/Appcast-Feeds

你应该把这里添加到附件中this sparkle:installerArguments="/SILENT /SP-"

你用的是什么版本?版本0.4发布于2014年9月6日,但是installerArguments直到2015年4月25日才被合并。您可能需要自己构建。