代码之家  ›  专栏  ›  技术社区  ›  Aleksandar Vucetic

自动更新.NET应用程序[重复]

  •  24
  • Aleksandar Vucetic  · 技术社区  · 16 年前

    这个问题已经有了答案:

    我们正在开发一个非常复杂的系统,该系统由几个WCF服务、ASP.NET MVC应用程序、管理工具(Windows窗体应用程序)组成…其中一些实例将在多个服务器上运行。我们正在为这样一个系统寻找一个好的自动更新解决方案。最有可能的是,我们需要一个单独的自动更新应用程序(服务)来完成这项工作,或者需要一个集中式管理应用程序来了解所有已安装实例的版本并远程进行更新。是否有任何好的产品/图书馆,为此目的而制作,你知道或有经验?

    6 回复  |  直到 7 年前
        1
  •  33
  •   Bryce Siedschlaw    7 年前

    我个人使用一种非常简单的方法进行任何类型的自动更新:

    • 有安装人员
    • 检查新版本(简单的WebClient并将数字与当前的assemblyversion进行比较)
    • 如果版本更高,请下载最新的安装程序(出于安全原因,应通过SSL)
    • 运行下载的安装程序并关闭应用程序。(在此阶段,如果安装程序要求您是管理员,则需要具有管理员权限)

    安装人员应负责其余部分。这样,您将始终拥有最新版本和最新版本的安装程序。

        2
  •  26
  •   Wyatt O'Day    14 年前

    首先,我要说我是公司的创始人,公司有一个完整的更新解决方案,其中包括:

    wyupdate可以处理所有Vista/Windows7UAC问题,以及在您试图更新复杂软件时不可避免地出现的所有文件权限问题。

    我们也提供 free licenses to wyBuild for open source projects 但是,如果您只是想构建自己的更新程序,您可以自由地蚕食我们的源代码。

    也就是说,如果您想构建自己的更新程序,这里有一些提示:

    创建自己的更新程序

    一个好的起点是 wyUpdate AutomaticUpdater 我上面提到的源代码。你可以把它吃了,然后用于你自己的目的。它包含的一些算法:

    • 完全支持Windows Vista/Windows 7 UAC
    • 限制用户检查并更新其凭据的能力
    • 支持不稳定的企业内部网。(如果你曾经与一家公司合作过,这是一个真正的问题)。
    • 快速提取、修补和安装文件。
    • 注册表支持。
    • 用户出错或取消时回滚文件和注册表
    • 自我更新(没有留下文件)

    我们也有 file specifications here .

    自动更新

    既然自动是一项要求,我来告诉你我们是如何处理的。 AutomaticUpdater control .

    我们使用命名管道在独立更新程序(wyupdate)和位于程序窗体上的自动更新程序控件之间进行通信。WYUpdate向自动更新程序报告进度,自动更新程序可以告诉WYUpdate取消进度、开始下载、开始提取等。

    这将使更新程序与应用程序分离。

    事实上,我们使用的确切命名管道C代码包含在我不久前写的一篇文章中: Multi-process C# app like Google Chrome .

        3
  •  6
  •   synhershko    14 年前

    我写了一个开源解决方案来满足我们对WinForms和WPF应用程序的特定需求。一般的想法是以尽可能低的开销实现最大的灵活性。

    所以, 整合 非常简单,而且库几乎为您做了所有事情,包括同步操作。它也是 高度灵活 ,并允许您确定要执行的任务和条件-您制定规则(或使用已经存在的规则)。最重要的是支持 任何更新源 (web、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许可证授权)

    我计划在我有更多时间的时候扩展它,但老实说,无论它目前不支持什么,你都应该能够自己快速地增强它。

    自动更新WCF服务和ASP.NET网站应该也可以使用它,必要时使用文件的“热交换”和“iisreset”任务。

        4
  •  3
  •   Peter Lillevold Rene    16 年前

    单击一次查看管理工具。

        5
  •  2
  •   Kobus Smit    15 年前

    我们调查了一些选择,并决定使用 AppLife Update 我们企业项目的图书馆。

    AppLife更新可以快速轻松地为您的.NET应用程序添加自动更新功能,但由于它具有全面的API,因此也很灵活。

    在他们的网站上查看功能和一些演示视频的完整列表。

        6
  •  1
  •   Cheeso    15 年前

    对于简单的WPF应用程序,那些可能使用xcopy安装的应用程序,可以使用 this AppUpdater module . 它是一个源模块,只是几行代码,用于向简单的WPF应用程序添加更新功能。

    它是免费的。