【发布时间】: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