【发布时间】:2010-12-13 09:28:25
【问题描述】:
我们的软件从未正式安装在 Windows 上,目前有这样的更新模型:
连接到互联网
单击更新按钮
连接到服务器端程序
服务器端程序创建一个包含所有文件的 md5 哈希列表 服务器程序目录。
客户端程序创建一个包含所有文件的 md5 哈希列表 客户端程序目录。
进行比较以查看文件是否需要更新、删除或添加 到客户端的机器上,直到完成为止。
好吧,我想改用我最近看到使用频率更高的模型,在该模型中正式安装了软件并且会发生类似的情况:
当检测到互联网连接时,程序会自动查询 服务器查看是否有更新的安装包。
如果是,请询问用户是否愿意下载新安装。
如果不是,什么也不做,如果是,下载新安装。
以编程方式卸载旧程序并开始安装 新包。
我需要建议的部分是上面的第 4 点。在运行原始程序的同时以编程方式卸载旧程序并开始安装新程序的最佳方法是什么。我假设必须有一些中间程序来完成所有工作(关闭当前程序,运行它的卸载程序,然后启动新的安装程序)有更好的方法吗?我只是想转移到我们在完整安装中更新而不只是文件的模型 - 这将使我们能够更轻松地对软件进行版本控制并保持独立安装以随时恢复。
感谢您的建议!
编辑:相关问题 - 找到特定安装的安装 UUID 的最简单方法是什么?
【问题讨论】:
-
听起来你很了解情况。有些人已经组合了一个更新程序存根,你称之为中介,他们从要更新的应用程序启动。它运行 msiexec /u
,卸载旧的东西,然后它可以运行新下载的设置。但在某个时候,它会退出,并且某个地方的某个人需要删除该更新程序存根 exe。
标签: windows installation automation