我们目前正在考虑修改应用程序的更新过程,有很多可能的方法可以做到这一点,但我先给出一些背景知识。我们目前正在运行MVVM WPF / Silverlight应用程序,该应用程序具有本地和在线运行的SQL Server 2008 R2数据库。我们目前有一个更新过程,它在线检查更新,然后启动更新程序以在运行MSI或MSP修补程序文件之前提升权限以应用更新。
不幸的是,由于我们大多数客户的设置,我们发现大多数用户都很难获得访问权限,因为他们的本地管理员并不总是可用。这导致我们寻找替代方法。
我们理想的情况是在系统用户帐户下的后台静默运行进程,该进程会定期检查服务器是否有更新。当一个更新被认为可用时,应该通知当前用户有可用的更新并询问他们是否希望下载它(还有一个静默下载的讨论,用户点击以便在准备好时运行更新)。然后,该过程可以运行UI以显示正在进行的下载,如果它显示在工具栏的通知区域中,则再次是理想的。在此过程结束时,它应该在提升的权限下运行MSI文件,以允许用户在没有管理员权限的情况下更新软件。
软件的初始安装将由管理员执行,管理员将了解此完全自动更新过程。
所以我的问题是:
执行此类流程的最佳做法是什么? 您对此进行编码有什么建议,例如我们是否应该有一个应用程序或运行任务或服务的流程? 是否有专门设计用于解决此问题的软件? 是否有专门用于此目的的Windows帐户? 任何实例和不同实践的优点和缺点。
我意识到这是一个非常模糊的问题,但我宁愿采用推荐的方法,而不是重新发明轮子。
感谢。
答案 0 :(得分:0)
我可能会偏离此处,但为什么不将您的应用程序设为Click Once应用程序。这样每次你的应用程序启动它都可以检查是否有更新的版本并提示最终用户安装更新版本。
如果新版本确实出现问题,那么最终用户将能够回滚到以前的版本。
我们已经将这种方法与几个WPF应用程序一起使用,效果非常好。
我们倾向于发布到开发计算机上的文件夹,然后ftp到公共服务器。