9

是否有任何 API 或工具可以自动更新软件?它应该负责从提供的文件列表的 URL 检查更新,并下载和替换需要更新的文件。如果它包含一个身份验证模块,这样只有授权方才能访问更新,那就太好了。它应该与语言无关 - 获取一个文件列表,除了它们的版本之外没有额外的知识,如果网站上有更新的版本,则用新下载的副本替换它们。

我对适用于 Windows 平台的东西特别感兴趣,它可以在 Win Xp 到 Win 7 上运行。

4

12 回答 12

3

这让我想到apt-get...

于 2009-11-25T12:45:46.437 回答
2

不久前我确实看到了一些关于将颠覆嵌入到您的应用程序中以管理版本控制的文章。

编辑:

http://svnbook.red-bean.com/en/1.5/svn.developer.html

Subversion 具有模块化设计:它是作为用 C 编写的库的集合来实现的。每个库都有明确定义的用途和应用程序编程接口 (API),并且该接口不仅可供 Subversion 本身使用,也可供任何软件使用希望嵌入或以其他方式以编程方式控制 Subversion。此外,Subversion 的 API 不仅适用于其他 C 程序,也适用于以 Python、Perl、Java 和 Ruby 等高级语言编写的程序。”

于 2009-11-25T12:50:43.440 回答
2

也看一下这里:是否有 C++/Win32/MFC 的自动更新框架(如 Sparkle)?

于 2009-12-05T16:04:59.350 回答
2

刚刚看到UpdateNode启动了一个非常酷的更新和消息传递系统。它似乎是跨平台的,并且对开源免费。

更新,对此做了一些进一步的分析,发布在:https ://stackoverflow.com/a/22528011/3257300

于 2014-03-19T21:22:44.073 回答
1

对于 Windows,我会使用Google Update,也称为 omaha

由于您没有将此问题标记为 windows,因此我还提到了适用于 Mac 的UpdateEngine

还有(最好的)apt,它在所有基于Debian的LinuxBSD发行版上免费提供,比如Ubuntu

于 2009-12-05T23:34:32.730 回答
1

有一个受 Debian Linux 的 APT 启发的开源项目WIPT 。

于 2009-12-16T13:22:23.390 回答
0

前往Launchpad并使用 PPA:它是一个 Debian/Ubuntu 存储库管理平台。当然,这并不是真正的平台独立,但它是语言方面的 :-)

于 2009-11-25T13:10:32.843 回答
0

你应该看看ClickThrough,我不太了解它,但它听起来与你正在寻找的相似。至于授权,我想这将由您的网络服务器根据 URL 处理。

于 2009-12-02T04:45:58.137 回答
0

InstallShield 有一个产品。从未使用过它,但几年前对其进行了研究,但我们决定推出您自己的解决方案。

于 2009-12-02T04:59:39.493 回答
0

你没有说明你需要这个平台。我能想到的最简单的方法是使用 rsync 进行颠覆。

这个概念是为 subversion 编写一个 post-commit 钩子。该脚本将更新存储库机器上的“工作文件夹”,然后使用 rsync 将差异更新到另一台机器。

将使用 rsync over ssh 设置数据保护和身份验证。

如果这是针对 Windows 的,您可以尝试在两台机器上安装 cygwin 进行相同的操作。

祝你好运。

于 2009-12-03T01:36:30.123 回答
0

如果您使用 .NET,我是AppLife 更新的快乐客户

于 2009-12-04T00:38:32.697 回答
0

CRONw 是 Windows 的计划执行服务。(对不起,我无法链接它,我显然仅限于 1 作为新用户。它托管在 Sourceforge 上。)

Powershell是一种 Windows 脚本语言(微软官方),它允许您执行您可能想要执行的大多数系统管理操作。即使您以前没有使用过它也很容易上手。

我想说你最好的选择是在 Powershell 中编写一个简单的更新脚本,并且可以选择将其设置为 crontask,这样你就不必手动执行它。

IIRC,Powershell 是 XP 上的可选安装,而 CRONw 要求您运行 32 位系统。你没有说,所以我猜你正在做 32 位,但替代品值得一提。

在所有这一切中,我假设您所描述的 URL 是为此目的而设计的 - 如果它们不是并且您不拥有它们,它将迅速变得比您愿意承受的痛苦更大。(让计算机浏览人类可读的网站通常可以。)

于 2009-12-05T00:22:44.050 回答