0

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

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

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

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

所以我的问题是:

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

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

谢谢。

4

1 回答 1

0

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

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

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

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

使用属性发布中的发布向导

选择本地文件位置

指定用户将如何安装应用程序

输入更新的公共 URL

准备发布

于 2014-10-07T07:50:08.203 回答