windows - 替换 Windows 中可执行程序的策略

标签 windows patch auto-update

我有一个 Windows 程序需要从服务器自动更新。

它已经能够从服务器传输文件并在加载它们之前更新和验证诸如 DLL 插件文件之类的东西。

但是,这个程序也需要 self 更新。可能有几种不同的方法可以做到这一点,我从各种在线游戏客户端看到的最明显的方法是创建一个“自动修补程序”,它下载并运行客户端可执行文件。这引入了必须更新自动修补程序的问题,因此如果有更优雅的解决方案,我想听听。

我不得不想象有一种方法可以将新的可执行文件下载为临时文件,比方说“client.exe.tmp”,然后启动一个单独的进程等待原始 client.exe 退出然后在其顶部重命名/复制新文件。

有没有人成功地做过这种事情,你用什么方法让它起作用?

最佳答案

  1. 运行 exe 下载新的,把它放在某个地方
  2. 运行 exe 将自己重命名为任何名称(如 .exe.tmp)
  3. 运行exe将下载的exe放到运行的地方(名字和原来的一样)
  4. Running exe 启动下载的exe
  5. 下载的 exe 检查 .exe.tmp 文件,如果找到则删除它并终止旧的运行进程
  6. 完成

关于windows - 替换 Windows 中可执行程序的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7198666/

相关文章:

git - 找到补丁适用的第一个或最后一个提交

assembly - 为您的游戏或应用程序创建补丁需要哪些知识?

java - 检测 OpenJDK 的补丁版本

mysql - 当其他链接表中的行更新时如何自动更新时间戳

Android通过开发者控制台自动更新资源文件

Java - 可以连接到 netbeans 中的 mysql 服务器,但不能像 applet 一样工作

c# - XAML 使用 @ 绑定(bind)到属性

windows - 如何避免 "Windows Defender SmartScreen prevented an unrecognized app from starting warning"

c# - API/WMI 查询系统上安装的修补程序和更新的完整列表?

java - 如何设置您的 Android 应用程序,以便在我上传新的 APK 时它会在用户的手机上自动更新?