C++自动更新到新版本

标签 c++ version-control download version

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

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

如果一定要下载新版本,我想下载新的脚本,用curl命名为:Application2.exe

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

我的解决方案是:Application.exe 下载 Application2.exe。下载后,它应该触发 Updater.exe,它会休眠 5 秒。在这 5 秒内(或任何最合适的时间跨度)。在这 5 秒内,Application.exe 有时间关闭,5 秒后 Updater.exeApplication.exe 替换为 Application2 .exe.

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

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

最佳答案

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

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

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

关于C++自动更新到新版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42998532/

相关文章:

安卓 C++ OpenGL : unable to find stats

c++ - “Undefined symbols for architecture x86_64”-再次(小例子)

c++ - OpenCV cvSmooth 链接器错误

git - 从 master rebase 到其他分支

svn - 如何使用新的 doxygen 输出最小化修订之间的更改数量?

ios - Objective-C : Downloading File With Progress Bar

Python-Gmail邮件检索/下载

svg - 如何从此页面下载 .svg 文件?

c++ - 在 Windows 上使用 zlib 编译 boost

git - 删除上游存储库中的标签是否有任何问题?