gpt4 book ai didi

windows - 如何实现自动更新检测模型

转载 作者:可可西里 更新时间:2023-11-01 10:40:41 26 4
gpt4 key购买 nike

我们的软件从未正式安装在 Windows 上,目前有这样的更新模型:

  1. 连接到互联网

  2. 点击更新按钮

  3. 连接到服务器端程序

  4. 服务器端程序创建一个包含所有文件的 md5 哈希列表服务器程序目录。

  5. 客户端程序创建一个包含所有文件的 md5 哈希列表客户端程序目录。

  6. 进行比较以查看文件是否需要更新、删除或添加到客户端的机器,直到完成。

好吧,我想转移到我最近看到更频繁使用的模型,在该模型中正式安装了软件并且发生了这样的事情:

  1. 当检测到互联网连接时,程序会自动查询服务器查看是否有更新的安装包。

  2. 如果是这样,询问用户是否愿意下载新安装。

  3. 如果不是,什么也不做,如果是,下载新安装。

  4. 以编程方式 卸载旧程序并开始安装新包。

我需要建议的部分是上面的第 4 部分。在运行原始程序的同时以编程方式卸载旧程序并开始安装新程序的最佳方法是什么。我假设必须有一些中间程序来完成所有工作(关闭当前程序,运行它的卸载程序,然后启动新的安装程序)有没有更好的方法?我只想转移到一个我们更新完整安装而不仅仅是文件的模型 - 这将使我们能够更轻松地对我们的软件进行版本控制,并保持独立安装以随时恢复。

感谢您的建议!

编辑:相关问题 - 查找特定安装的安装 UUID 的最简单方法是什么?

最佳答案

我的做法是使用一个单独的程序(我们称之为 StartUp.exe)来检查更新,然后加载真正的软件(我们称之为 Program.exe)。 StartUp.exe 与 Program.exe 具有相同的图标,是桌面快捷方式和菜单项指向的可执行文件,使用与 Program.exe 相同的名称。

所以顺序是这样的:

  1. 用户双击桌面快捷方式或菜单项,看起来像Program.exe,名称相同,但实际上是StartUp.exe
  2. StartUp.exe 运行并检查是否有任何更新
  3. 如果有更新,它会简单地进行复制(我们构建了一个带有进度条的漂亮系统,但您可以简单地复制新文件覆盖旧文件)
  4. StartUp.exe 然后运行 ​​Program.exe
  5. StartUp.exe 然后退出

这样做的好处是您的程序文件都不会被锁定,因为加载程序实际上是一个不同的程序。用户并没有变得更聪明,因为他们运行的程序看起来和他们想要运行的程序的名称相同,最终结果是他们想要的程序确实运行并且保证是最新版本。

使用更新按钮执行此操作会更复杂,但我们需要强制运行最新版本的程序(由于版本之间的数据库差异),因此在启动时强制更新对我们来说很有效。

我相信现在的方法是使用 ClickOnce部署,但我从未尝试过 - 当我编写我的系统时它不可用,而且这种方法很简单而且效果很好。

关于windows - 如何实现自动更新检测模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1680019/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com