代码之家  ›  专栏  ›  技术社区  ›  Alex KeySmith

是否可以集成到“Windows更新”中来升级您自己的应用程序?

  •  5
  • Alex KeySmith  · 技术社区  · 14 年前

    是否可以集成到Windows更新中来更新您自己的应用程序?

    我听说过“clickonce”,但据我目前所知,管理更新仍然是应用程序开发人员的责任。

    我发现了一个类似的用户体验,即终端用户如何在linux发行版(如ubuntu中的update manager)中更新应用程序。集中应用程序和系统更新的地方。

    我知道您可以更新,例如office、sql server等,这样您就可以对非核心系统应用程序进行更新。但当然这些都是微软的应用程序,有没有第三方做类似的事情?

    2 回复  |  直到 14 年前
        1
  •  5
  •   rjh    14 年前

    Windows更新(和Office更新)是Microsoft运行的,虽然允许Nvidia和Intel等第三方使用它进行驱动程序更新,但它不是一个开放平台。没有与ubuntu/debian的apt存储库或第三方存储库相当的windows。

    ClickOnce 可能是你需要的。你将不得不“管理更新”上传一个新版本的应用到你的网络服务器-不知道你将如何避免这样做,无论系统。当用户启动应用程序时,ClickOnce系统会检查新版本并自动下载。比实现自己的更新系统要干净得多-必须有成千上万个不同的更新系统由不同的windows开发人员编写!

    ClickOnce允许大量定制——用户可以选择何时或是否更新他们的应用程序。开发人员可以将更新设置为可选的或必需的,并合理地确保其整个用户群将升级到最新版本(用于安全修复等)。还有一个api,因此您可以在更细粒度级别上控制更新过程。

        2
  •  8
  •   Community Egal    7 年前

    不可能集成到windows的实际“windows update”功能中,但是如果您愿意的话,可以为您的更新系统使用相同的底层技术。

    它叫 Background Intelligent Transfer Service (或位),并附带一个 API 您可以使用它来让应用程序利用它进行您自己的更新。您仍然需要完全自行管理更新过程,但bits只负责受限制的后台下载更新。还有一个 BitsAdmin 可用于管理位流的工具。

    除非你正在编写一个相当大的应用程序,否则在尝试使用bits之前,你应该认真考虑,这不是一个简单的“点击即走”的安装过程,你必须用自己的代码来管理大部分更新过程。

    另一方面,单击一次(作为 rjh 已经提到)相当简单,您只需定义一些基本参数,如版本和更新url,clickonce引擎将自动处理检查、下载和安装您的更新,您只需将它们发布到服务器。clickonce有一些限制,但是对于大量的应用程序,clickonce可以很好地工作。对于标准的clickonce部署,没有要编写的代码,它都是通过visual studio接口处理的。