首页 文章

C 自动更新到新版本

提问于
浏览
4

我一直在寻找一个好的解决方案 3 天,但到目前为止我还没有找到任何解决方案。我的情况是:

客户端已安装应用程序(C,控制台应用程序)。 start-up 上的应用程序将检查它与服务器的版本号并返回或它是 up-to-date 或它应该下载新版本。

如果必须下载新版本,我想用 Curl 下载新脚本,名称为:Application2.exe

但是,我希望它能够替换触发新版本下载的旧Application.exe

我的解决方案是:Application.exe下载Application2.exe。当下载时,它应该触发Updater.exe,它会让我们说 5 秒钟。在这 5 秒内(或任何最佳套房的时间跨度)。在这 5 秒内,Application.exe有时间关闭,5 秒后****用Application2.exe替换Application.exe

现在更新完成,客户端安装了最新版本。

关于系统锁定文件等,此解决方案是否可行?

1 回答

  • 6

    好消息是,您可以重命名在 Windows 上打开的文件(可执行文件和 DLL)。锁可以防止您删除文件,而不是重命名文件。

    • 在当前运行的程序运行时将其重命名为Application_old.exe

    • 将下载的程序写入Application.exe

    • 运行新的Application.exe

    • 关闭旧的。

    • 使用新执行的程序删除旧版本。

    这样,您将在更新后获得 auto-restart。我自己一直这样做。

相关问题