【问题标题】:windows automatic software updateswindows 自动软件更新
【发布时间】:2010-09-17 09:02:21
【问题描述】:

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

【问题讨论】:

  • 您能分享一下为什么 ClickOnce 不适合您吗?该工具足够好,您将很难找到与之竞争的任何东西

标签: .net deployment updates


【解决方案1】:

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 课是关于更新的)

【讨论】:

  • 不是没有黑客你就不能(如果应用程序被卸载,它不会被删除)
【解决方案2】:

不要太垃圾,但我们公司提供自动更新解决方案。它分为 3 个部分:

wyUpdate 处理所有 Vista/Windows 7 UAC 问题以及在您尝试更新复杂软件时不可避免地出现的所有文件权限问题。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

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

          【讨论】:

            【解决方案7】:

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

            【讨论】:

            • 构建这样的系统并非易事。我已经完成了,但从未找到全面的教程。
            【解决方案8】:

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

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

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

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

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

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-05-19
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-12-06
              相关资源
              最近更新 更多