如何使文件自我更新(Native C++)

Cla*_*bel 7 c++ windows native

我正在使用Microsoft Visual Studio 2008和Windows目标部署.我如何使文件"自我更新"?我已经将"通过网络传输"部分关闭了,但是如何使可执行文件自行编写?

基本上,我想为包含自动更新程序的目录编写自动更新程序,并且更新程序需要更新目录中的所有内容.

也许在文件锁被释放之前将更改挂起到文件的方法可行.如果我这样做的话,我可能会用热补丁跟进.

wpr*_*prl 5

编写一个新的可执行文件并删除或保存旧的可执行文件的副本 - 您可以通过网络发送差异并使用第三个程序,更新监视器或其他任何程序来应用它.它只是一个小脚本,可以在远程应用程序实现更新可用时启动.更新程序可以将自身重命名为$ UPDATER_OLD_VERSION或其他任何内容,使用适当的名称编写自身的更新副本,然后在运行新的更新程序时,检查应用程序目录中是否存在名为$ UPDATER_OLD_VERSION的文件并将其删除.所有其他文件都可以更新/覆盖.

  • @wowus - 写入临时数据比覆盖实际的exe要好得多.此外,修复很简单:写入临时文件,然后调用MoveFile将其放在最终位置.在同一个卷上,MoveFile是原子的,因此崩溃不会使其处于不一致状态. (3认同)