【问题标题】:Automated Updates Suggestions自动更新建议
【发布时间】:2014-11-30 18:46:49
【问题描述】:

我们目前正在考虑修改我们的应用程序的更新过程,有很多可能的方法来做到这一点,但我会先介绍一些背景知识。我们目前正在运行一个 MVVM WPF / Silverlight 应用程序,它有一个本地和在线运行的 SQL Server 2008 R2 数据库。我们目前有一个更新过程,它在线检查更新,然后启动更新程序以在运行 MSI 或 MSP 补丁文件以应用更新之前提升权限。

不幸的是,由于我们大多数客户的设置,我们发现大多数用户都在为访问权限而苦恼,因为他们的本地管理员并不总是可用。这导致我们寻找替代方法。

我们的理想情况是在后台以系统用户帐户静默运行一个进程,该进程会定期检查服务器是否有更新。当更新被认为可用时,应通知当前用户更新可用并询问他们是否希望下载它(还有关于静默下载的讨论,用户在准备好时单击以运行更新)。然后,该过程可以运行一个 UI 来显示正在进行的下载,如果它显示在工具栏的通知区域中,这将是再理想不过的了。在此过程结束时,它应该在提升的权限下运行 MSI 文件,以允许用户在没有管理员权限的情况下更新软件。

软件的初始安装将由了解此全自动更新过程的管理员执行。

所以我的问题是:

执行此类流程的最佳实践方法是什么? 您对此编码有什么建议,例如我们应该有一个应用程序还是从任务或服务运行流程? 有没有专门为解决这个问题而设计的软件? 是否有专门为此目的设计的特定 Windows 帐户? 不同做法的任何示例以及优缺点。

我意识到这是一个非常模糊的问题,但我更愿意遵循推荐的方法,而不是重新发明轮子。

谢谢。

【问题讨论】:

  • +1/-1 for:我意识到这是一个非常模糊的问题,但我更愿意遵循推荐的方法,而不是重新发明轮子:)。

标签: c# wpf scheduled-tasks automatic-updates


【解决方案1】:

我可能在这里偏离了轨道,但为什么不将您的应用程序设为 Click Once 应用程序。这样,您的应用每次启动时都可以检查是否有更新的版本,并提示最终用户安装更新的版本。

如果新版本确实出现问题,那么最终用户将能够回滚到以前的版本。

我们已经在几个 WPF 应用程序中使用了这种方法,效果非常好。

我们倾向于发布到开发机器上的一个文件夹,然后 ftp 到公共服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-14
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多