C++自动更新到新版本
C++ automatically update to new version
我已经搜索了 3 天的好的解决方案,但到目前为止我还没有找到任何解决方案。我的情况是:
客户端安装了应用程序(C++,控制台应用程序)。启动时的应用程序将与服务器检查它的版本号并返回或者它是最新的或者它应该下载一个新版本。
如果一定要下载新版本,我想下载新的脚本用curl给名字说:Application2.exe
但是,我希望它替换触发新版本下载的旧 Application.exe。
我的解决方案是:Application.exe 下载 Application2.exe。下载后,它应该触发 Updater.exe ,它会休眠 5 秒。在这 5 秒内(或任何最合适的时间跨度)。在这 5 秒内,Application.exe 有时间关闭,5 秒后 Updater.exe 替换 Application.exe 与 Application2.exe.
现在更新完成,客户端安装了最新版本。
对于系统锁定文件等,此解决方案是否可行?
好消息,您可以重命名在 Windows 上打开的文件(可执行文件和 DLL)。锁定可防止您删除文件,而不是重命名它们。
- 将当前 运行 程序重命名为
Application_old.exe
,而它是 运行
- 将下载的程序写入
Application.exe
- 运行新
Application.exe
- 关闭旧的。
- 使用新执行的程序删除旧版本。
这样,您将在更新后自动重启。我自己一直这样做。
我已经搜索了 3 天的好的解决方案,但到目前为止我还没有找到任何解决方案。我的情况是:
客户端安装了应用程序(C++,控制台应用程序)。启动时的应用程序将与服务器检查它的版本号并返回或者它是最新的或者它应该下载一个新版本。
如果一定要下载新版本,我想下载新的脚本用curl给名字说:Application2.exe
但是,我希望它替换触发新版本下载的旧 Application.exe。
我的解决方案是:Application.exe 下载 Application2.exe。下载后,它应该触发 Updater.exe ,它会休眠 5 秒。在这 5 秒内(或任何最合适的时间跨度)。在这 5 秒内,Application.exe 有时间关闭,5 秒后 Updater.exe 替换 Application.exe 与 Application2.exe.
现在更新完成,客户端安装了最新版本。
对于系统锁定文件等,此解决方案是否可行?
好消息,您可以重命名在 Windows 上打开的文件(可执行文件和 DLL)。锁定可防止您删除文件,而不是重命名它们。
- 将当前 运行 程序重命名为
Application_old.exe
,而它是 运行 - 将下载的程序写入
Application.exe
- 运行新
Application.exe
- 关闭旧的。
- 使用新执行的程序删除旧版本。
这样,您将在更新后自动重启。我自己一直这样做。