自动更新桌面应用

我们有一个Web应用程序和一个桌面Windows WPF应用程序。 Windows应用程序发送数据到webapp(托pipe在蔚蓝)

用户从网站下载应用程序。 偶尔会有新版本的桌面应用程序可用。

为桌面应用程序设置自动更新最有效的方法是什么? 我们正在使用github

我发现在github“发布”,但我不知道如何通知桌面应用程序,以及如何创build一个更新。 (我想我们需要检查每次启动应用程序时的github版本,我需要使用Github API吗?)

什么是最好的版本库的结构?

我正在寻找有关如何对桌面应用程序进行无缝更新的最佳实践。 (根据存储库设置,创buildweb api来拉动版本信息也许?)

您可以使用ClickOnce Deployment机制来部署您的桌面应用程序。 这将负责更新软件。 您的用户从可公开访问的Internet站点下载软件。 只要有新版本可用,您就可以简单地在下载链接上部署最新的部署文件。 ClickOnce已部署的应用程序将自动检查该链接上的任何更新版本,并提示用户下载并安装最新版本。

从同一个MSDN链接,ClickOnce部署解决的问题之一是促进自动更新:

更新应用程序时遇到困难 。 使用Microsoft Windows Installer部署时,每当应用程序更新时,用户都必须重新安装整个应用程序; 使用ClickOnce部署,您可以自动提供更新。 只有已经更改的应用程序的那些部分被下载,然后从新的并排文件夹重新安装完整的,更新的应用程序。

我正在考虑完成同样的需求,并遇到这个库,可以做你所要求的; https://github.com/Squirrel/Squirrel.Windows

有很多的配置,但你要求的不是微不足道的,但也许你可以得到一些想法。

满足我们的需求 我们要让我们的构建服务器(teamcity)使用Wix项目创建一个MSI,然后应用程序将下载并执行MSI。 一旦我们开始生产,我们会把MSI托管移到更多的企业CDN类型设置。