解决方法
好的,这个帖子被标记在Meta上,给出了答案,所以我要加重这个问题.
xdelta是一个二进制差分程序,而不是提供一个完整的图像,只给你什么改变和在哪里.文本差异的示例将在文本行之前具有符号,并显示您在新版本中添加或删除这些文本.
有两种更新二进制图像的方法:使用自己的程序替换它,或者使用某种形式的包管理替换它.例如,Linux系统使用rpm等来推送包的更新.在Windows环境中,如果您不在公司网络上,您的选项受到安装的限制.如果你是,请尝试使用WSUS和MSI包装.那会让你更容易的生活,或者ClickOnce就像有人提到过的.
如果你不是,你将需要牢记以下几点:
>您需要成为管理员来更新某些文件夹中的其他人所说的内容.我强烈建议您接受这种行为.
>如果用户是管理员,您可以提供检查更新.然后,你可以做两件事之一.您可以下载整个新版本的应用程序,并将其写入硬盘上的映像(即文件 – 记住将映像加载到内存中,以便重新编写自己的程序文件).然后,您需要告诉用户更新已成功并重新加载程序,因为新的图像将不同.
>或者,如果带宽受到关注,您可以应用diff.可能不是在你的情况下,但是您需要从客户端程序中知道两个版本来区分,以便更新服务器为您提供正确的补丁.否则,diff可能不会成功.
我不认为你的目的xdelta将给你很多的收益.只需更换整个图像.
编辑如果用户不能被提示,只需重新加载该应用程序.但是,我强烈建议您通知您正在网络中的用户,并要求允许这样做/启用手动更新模式,否则像我这样的人会阻止它.