繁体   English   中英

如何在不使用ClickOnce的情况下获取控制台应用程序以检查更新?

[英]How do I get a console application to check for updates without using ClickOnce?

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

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

不使用ClickOnce的控制台应用程序相当于CheckForUpdate()

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

如果这更像是您要使用文件共享的公司环境,则可以采用其他方法。 让程序检查知名共享目录中的文本文件,其中包含最新版本和更新路径。 解析文本文件以获取与上述相同的信息,然后使用system.io命名空间类从指定的路径中获取新版本。 基本上是相同的操作,只是使用文件路径而不是Web请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM