13

为 Windows 窗体项目处理基于 Web 的自动软件更新有哪些好的解决方案?我知道微软一键,但目前对它不感兴趣。

4

8 回答 8

15

ClickOnce 适用于千篇一律的东西,但在安全方面有一些限制(即无法创建桌面图标、无法访问 COM 等)

假设您使用 MSI 来安装您的应用程序。使用 WIX ( http://wix.sourceforge.net/ ) 创建补丁 (.msp)。您将需要查看 Vista 的最低特权用户帐户 (LUA) 修补程序,因为如果您不这样做,UAC 会搞砸您。

然后您的应用程序执行以下操作:

  1. 通过 HTTP 检查新版本
  2. 下载 MSP(由于 UAC,请注意在 Vista 中将其 DL 到的位置)
  3. 启动一个 Shim exe
  4. 等待您的应用关闭
  5. 启动 msp(在非交互模式下)
  6. 重启你的应用

这一切都可以在 XP 和 Vista 上以零用户交互在幕后自动发生。

一个很好的起点,一般来说,WIX 是:

http://www.tramontana.co.hu/wix/index.php (第 4 课正在更新中)

于 2008-10-15T18:20:43.423 回答
5

Not to get too spammy, but our company offers an automatic updating solution. It comes in 3 parts:

wyUpdate handles all of the Vista/Windows 7 UAC problems and all the file permission problems that inevitably pop up when you're trying to update complex software.

于 2010-02-23T17:36:19.837 回答
3

我们一次写了自己的……这不是一个好主意。在许多情况下,您可以使用 ClickOnce。我们实际上使用了一个我们可以推荐的名为AutoUpdate+的产品。它的特别之处在于它可以避免 UAC 弹出问题。

于 2010-06-22T14:38:41.810 回答
1

这实际上取决于更新过程的复杂程度。

我有一些客户的简单需求,我们创建了自己的流程设置来处理它,在大约 3 小时的开发中,我们有一个完全有效的解决方案,可以满足他们的所有需求。

于 2008-10-15T18:18:04.053 回答
1

微软一键?你是说 ClickOnce 吗?单击一次以赢得表格非常好。部署速度很快,所有更新过程都由自己处理。

于 2008-10-15T18:19:33.347 回答
0

但是ClickOnce是您可以拥有的最好的,您可以选择用户是否需要下载新版本、使用旧版本、返回版本等...

您可以随时构建自己的解决方案,检查某个网址中的 XML 设置文件的版本号,如果它比当前版本更新,请更改用户以下载新版本,例如...

于 2008-10-15T18:19:56.030 回答
0

我也听说过它叫做 clicktwice :+> WIX 解决方案是我更感兴趣的。是否有使用这种技术的示例应用程序(带有源代码)?

于 2008-10-15T18:26:02.600 回答
0

这是我为解决我们对 WinForms 和 WPF 应用程序的特定需求而编写的一个开源解决方案。总体思路是以尽可能低的开销获得最大的灵活性。

因此,集成非常简单,该库几乎可以为您完成所有工作,包括同步操作。它也非常灵活,可以让您确定要执行哪些任务以及在什么条件下执行 - 您制定规则(或使用一些已经存在的规则)。最后一点是对任何更新源(网络、BitTorrent 等)和任何提要格式的支持——任何未实现的内容您都可以自己编写。

还支持冷更新(需要重新启动应用程序),并且会自动完成,除非为任务指定“热交换”。

这归结为一个 DLL,大小不到 70kb。

更多详情请访问http://www.code972.com/blog/2010/08/nappupdate-application-auto-update-framework-for-dotnet/

代码位于http://github.com/synhershko/NAppUpdate(在 Apache 2.0 许可下获得许可)

于 2010-08-17T10:54:52.933 回答