我有一个 Windows 程序需要从服务器自动更新。
它已经能够从服务器传输文件并在加载它们之前更新和验证诸如 DLL 插件文件之类的东西。
但是,这个程序也需要 self 更新。可能有几种不同的方法可以做到这一点,我从各种在线游戏客户端看到的最明显的方法是创建一个“自动修补程序”,它下载并运行客户端可执行文件。这引入了必须更新自动修补程序的问题,因此如果有更优雅的解决方案,我想听听。
我不得不想象有一种方法可以将新的可执行文件下载为临时文件,比方说“client.exe.tmp”,然后启动一个单独的进程等待原始 client.exe 退出然后在其顶部重命名/复制新文件。
有没有人成功地做过这种事情,你用什么方法让它起作用?
最佳答案
- 运行 exe 下载新的,把它放在某个地方
- 运行 exe 将自己重命名为任何名称(如 .exe.tmp)
- 运行exe将下载的exe放到运行的地方(名字和原来的一样)
- Running exe 启动下载的exe
- 下载的 exe 检查 .exe.tmp 文件,如果找到则删除它并终止旧的运行进程
- 完成
关于windows - 替换 Windows 中可执行程序的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7198666/