我有一个需要自动从服务器更新自身的Windows程序。在Windows中替换程序可执行文件的策略
它已经能够从服务器传输文件并在加载之前更新+验证诸如DLL插件文件之类的东西。
但是,这个程序也需要自行更新。可能有几种不同的方法可以完成,而我从各种网络游戏客户端看到的最明显的方法是创建一个“自动修补程序”,用于下载并运行客户端可执行文件。这引入了必须更新autopatcher的问题,所以如果有更优雅的解决方案,我想知道它。
我必须想象有一种方法可以将新的可执行文件作为临时文件下载,比如说“client.exe.tmp”,然后启动一个单独的进程,等待原始的client.exe退出,然后重新命名/将新文件复制到其顶部。
有没有人在成功之前完成过这样的事情,以及您使用了什么方法来实现它?
“运行exe文件重命名自己什么(像.exe.tmp)“听起来有些棘手。你可以在执行文件时重命名文件吗? – pezcode
是的,你不能删除它,但你可以在运行时重命名它。 – Maxem
这就是说,我猜最简单的方法是为exe创建自己的副本,然后执行所有替换的副本。 – pezcode