c# - 自动更新桌面应用程序

标签 c# asp.net-mvc windows azure github

我们有一个 Web 应用程序和一个桌面 Windows WPF 应用程序。 Windows 应用程序将数据发送到 web 应用程序(托管在 azure 上)

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

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

我在 github 中找到了“releases”,但我不确定如何通知桌面应用程序以及如何创建更新程序。 (我想我们每次启动应用程序时都需要检查 github 版本。我需要为此使用 Github api 吗?)

发布的最佳存储库结构是什么?

我正在寻找有关如何对桌面应用程序执行无缝更新的最佳实践。 (在存储库设置方面,创建 Web api 来提取版本信息也许?)

最佳答案

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

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

Difficulties in updating applications. With Microsoft Windows Installer deployment, whenever an application is updated, the user must reinstall the whole application; with ClickOnce deployment, you can provide updates automatically. Only those parts of the application that have changed are downloaded, and then the full, updated application is reinstalled from a new side-by-side folder.

关于c# - 自动更新桌面应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38965881/

相关文章:

c# - 多种方法的线程同步

javascript - 带有编辑按钮的 Jquery 数据表可重用部分 View ?

Python Interactive Interpreter 在 Windows 上总是返回 "Invalid syntax"

windows - 带有 Windows 路径的 dockerfile

c# - 数据绑定(bind)后访问 ListBox 项

c# - 无法首先使用实体​​框架代码将列表保存到数据库中

c# - 处理可选依赖项 (C#)

asp.net-mvc - 如何在 ASP.NET MVC 中的 HTML-5 data-* 属性中使用破折号

javascript - jQuery 数据表 : Weird sorting with Dates

c++ - 如何在给定 PID 的情况下隐藏进程的控制台?