C++自动更新到新版本

TVA*_*ren 5 c++ version-control version download

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

客户端已安装应用程序(C++,控制台应用程序).启动时的应用程序将检查它与服务器的版本号并返回,或者它是最新的还是应该下载新版本.

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

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

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

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

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

The*_*ist 7

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

  1. 在当前运行的程序运行时将其重命名Application_old.exe
  2. 将下载的程序写入 Application.exe
  3. 运行新的 Application.exe
  4. 关闭旧的.
  5. 使用新执行的程序删除旧版本.

这样,您将在更新后自动重新启动.我自己一直这样做.

  • @TVAvanHesteren 这种情况仅发生在文档中,例如 Microsoft Word 文档。当它们打开时,您无法重命名它们。但可执行文件和 DLL 可以重命名。 (2认同)