如何让控制台应用程序检查更新而不使用ClickOnce

本文关键字:ClickOnce 检查更新 控制台 应用程序 | 更新日期: 2023-09-27 18:17:08

在普通的Windows应用程序中,我可以使用…
System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CheckForUpdate()
...以确定是否有可用的更新。

我知道我可以使用System.ReflectionAssemblyAssemblyName来打印当前正在运行的应用程序的版本,但我不知道如何将其与最近发布的版本进行比较。

在不使用ClickOnce的情况下,控制台应用程序的CheckForUpdate()等于什么?

如何让控制台应用程序检查更新而不使用ClickOnce

您需要一些服务器端应用程序可以用来查找最新版本是什么。就我个人而言,我会使用返回最新版本号和可以下载的url的web服务,但这也可以通过解析此信息的静态页面来完成。应用程序启动,检查它的版本号是否与服务返回的版本号一致。如果服务报告新版本,使用HttpWebRequest(或其他方法)下载新版本。如果新版本打包为安装程序,则可以执行安装程序并退出当前运行的实例。如果你想要一些比安装程序更安静的东西,你需要一种就地更新exe的方法。这通常是由第二个应用程序(更新程序)完成的,它等待主应用程序退出,并将新版本的exe移到适当的位置,然后重新启动应用程序。要记住的一件事是,要使此工作,运行应用程序的用户将需要具有写入程序目录的权限。

如果这是一个企业环境,你想使用文件共享,你可以做不同的。让程序检查一个已知的共享目录,查找具有最新版本的文本文件和更新的路径。解析文本文件以获取与上面相同的信息,并使用system.io名称空间类从指定路径获取新版本。这基本上是相同的操作,但使用文件路径而不是web请求。