ClickOnce增量更新的问题

项目中用到了ClickOnce部署和升级项目,刚开始在测试的过程中发现,ClickOnce并不能如MS文档中所说的进行增量更新,而是在更新的时候下载了全部文件(查看安装目录的文件修改时间)。

 

在网上查阅了很多资料,都没有这方面的解答,而MSDN等微软的技术网站都说可以增量下载。

经过使用mage.exe命令行工具  进行一系列的案例测试,还是无果。走投无路之后发现,是不是一开始对全量下载的判定有问题呢,也就是说,是不是安装目录的文件修改时间更新了,并不能说明执行了全量下载呢?

 

产生这个想法后马上使用 流量监控工具进行测试,发现在第二次更新的时候果然是只下载了有改动的文件!(更新对话框可能还是显示所有文件的大小)。也就是说没有更新的文件是从上一个版本copy过来的,copy的过程中所有的文件修改时间改为了升级的时间(这也是为什么一开始认为clickonce是全量更新的原因)。

 

下面是mage.exe执行的测试命令:

 

mage -n Application -ToFile bin1000\a.exe.manifest -Name "a" -v 1.0.0.0 -fd bin1000 -cf TestForm_TemporaryKey.pfx

mage -n Deployment -ToFile a.application -Name "a" -v 1.0.0.0 -appm bin1000\a.exe.manifest -i true -cf TestForm_TemporaryKey.pfx -pu http://localhost/a.application

mage -n Application -ToFile bin1001\a.exe.manifest -Name "a" -v 1.0.0.1 -fd bin1001 -cf TestForm_TemporaryKey.pfx

mage -u a.application -v 1.0.0.1 -appm bin1001\a.exe.manifest  -cf TestForm_TemporaryKey.pfx

 

流量监控工具使用360自带的就可以,注意dfsvc.exe这个进程,是clickonce用来更新和下载程序的。可以在每次更新下载完毕后结束进程,下次会被重新启动,这样监控流量比较方便。

 

 

 

你可能感兴趣的:(360)