增量更新是很多大型企业常用的技术,目的是为了节省服务器流量来更新版本,运用范围也非常广泛,pc客户端,游戏,移动端应用,甚至服务器代码更新都可以使用。今天来介绍微软windows平台下如何使用增量更新
对于服务器而言,增量更新一般是对旧版本文件和新版本文件进行差分,形成差分文件
对于客户端而言,增量更新一般是拿到服务器的差分文件,和旧版本文件进行合并,形成新版本文件
所以对于服务器开发者而言,只需要学习如何对文件进行差分即可
使用增量更新需要用到第三方开源库
1.bsdiff:http://www.daemonology.net/bsdiff/
2.bzip:http://www.bzip.org/downloads.html(需要翻墙)
这两个网站默认都只提供linux平台下,其中bsdiff依赖bzip。
windows版可以使用:https://pan.baidu.com/s/1XB63VWuzGdJbNg1GGdW6qQ 提取码:406f
下载解压后如下:
bsdiff4.3-win32-src.png我们使用vs创建一个新的工程,并新增两个文件夹,include存放.h文件,src存放c和cpp文件
将bsdiff中的文件拷贝到相应目录
include.png src.png在vs的头文件和源文件中分别右击添加现有项后,我这边是64位平台,所以选择64位(看具体是32位还是64位)编译
接下来配置头文件目录,在右击->属性->c/c++->附加包含目录中选择编辑
新建一个,然后点击右边的...图标,选择目录
重新生成下解决方案,发现了几个报错:
_CRT_SECURE_NO_WARNINGS只是一个警告,我们在继续来到属性->c/c++->预编译器->预编译定义中新增_CRT_SECURE_NO_WARNINGS
重新生成解决方案,有新的报错:
这个问题把SDL检查关闭就可以了
最后我们只要生成拆分文件,所以把bspatch.cpp移除,最后成功生成exe文件
查看bsdiff中的mian方法,执行exe需要传入三个参数,第一个是旧文件路径,第二个是新文件路径,第三个是生成的差分文件路径
if(argc!=4) errx(1,"usage: %s oldfile newfile patchfile\n",argv[0]);
网友评论