gpt4 book ai didi

delphi - 自动更新服务

转载 作者:行者123 更新时间:2023-12-02 10:43:24 26 4
gpt4 key购买 nike

我现在已经在 Delphi 中编写了几个服务,但我想添加从 LAN unc 路径或从 http 服务器自动更新服务的功能。我一直在思考这个问题,我很想听听人们的想法。我可以创建一个线程来定期检查更新,但如何停止自动卸载和安装服务。我最初的想法是编写一个控制台应用程序来执行此操作并使用创建进程启动它,然后让服务停止并让控制台应用程序完成工作,在退出之前启动新版本的服务。这是一个好的策略还是我应该考虑其他策略。提前致谢

最佳答案

我按照你的建议去做。线程偶尔检查更新。如果存在,则会下载它并将其放入适当的位置。然后它会验证它是否健康(不希望它被损坏!)。最后,该线程启动另一个应用程序,其中包含参数告诉它要做什么,具体来说,是服务的名称、要替换的文件的位置以及要替换的文件。然后服务就等着了。

当更新程序应用程序启动时,它会暂停一会儿以确保服务完全稳定,然后使用服务控制 API 来停止服务。然后它会监视它,直到它消失。最后,它会暂停一下,以确保 Windows 确实完成了该文件的处理。然后,它开始重命名旧文件以将其移开(如果仍在使用,则会重试几次),然后将新文件复制到位。最后,它再次启动服务。然后更新程序退出。

这对于我的服务以及独立应用程序来说都非常可靠(更新程序应用程序具有不同的参数来了解哪种模式)。如果你小心的话,你可以使用完全相同的系统来更新更新程序,这很值得一看。

关于delphi - 自动更新服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4340961/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com