NSIS自动和静默更新



我目前正在构建一个应用程序,希望有一个安装程序和自动静默更新。

Dropbox、Spotify和Chrome都能在无人注意的情况下进行惊人的更新。因此,我查看了AppData中的Dropbox漫游文件夹,发现了一个名为DropboxUpdateHelper.exe的文件,其中包含一个NSIS图标。在Spotify文件夹中,我只能找到SpotifyHelper.exe和条款中提到的NSIS。

有没有关于如何在漫游文件夹中安装应用程序并使用静默自动更新程序的教程?我不是固定的NSIS,但更喜欢一个开源和免费的安装程序。

NSIS有INetC插件,可以用来从互联网上下载东西,但我不知道是否有自动更新教程。你可能还想看看VPatch插件。。。

这里有很多变量需要考虑:

  • 您的主应用程序应该查找更新,还是在应用程序(或窗口)启动时运行更新程序以便进行检查
  • 服务器上的文件是否已签名,或者您是否有其他方法来检测无效/损坏/MitM更新
  • 在下载/应用更新之前,您是否需要访问控制/DRM
  • 您将如何处理主要版本号更新?您会支持多个主要版本还是强制升级
  • 是否需要管理员权限才能更新?UAC处理
  • 您将如何支持从1.0升级到1.2?首先更新到1.1还是支持所有可能的次要版本升级路径

我相信还有许多其他问题你也必须考虑。在开始编码之前,您可能应该尝试回答所有这些问题。在开发过程中,您可能会发现其他问题,或者您必须彻底更改设计。

IMHO,这不是一个简单的问题,我认为你无法找到符合你确切设计/要求的临时解决方案。。。

使用NSIS从互联网下载文件很容易(有几个插件可用于此目的:NSISdl、InetC…),但此类功能更多的是编码。

对此没有确切的解决方案——正如安德斯所说,你需要指定每一个细节来实现所需的行为。

最新更新