最近搞ASP.NET程序的在线升级,基本上就是在部署了ASP.NET的网站程序上提供live update的功能.
目前采用的版本是2.0的版本,基本思路是这样的,进入liveupdate的功能以后,检测升级服务器上是不是有新的升级包下载,然后下载,然后解压,然后更新.
目前基本搞的七七八八了,而且也根据实验的结果确认了一些事情.
首先由于ASP.NET程序的特点,可以通过在运行的时候,替换aspx页面和bin目录中的dll文件就可以完成升级了.
首先是下载的问题,目前是用WebClient类就行测试的,基本上下载50M的文件没有问题,由于asp.net特点,下载的线程压到了application,这个地方以后需要考虑一下,如果将来非常大的文件话,可能会消耗非常大的服务器资源.可能需要在下载的部分进行一下重构,进行一小块一小块的下载.这个也是现在的问题,没有办法获得下载的进程,虽然WebClient提供相关的事件,但是奇怪的是我捕捉不到.
解压没有问题.net2.0提供了zip解压相关的功能.
剩下的就是定义一个xml文件,写上需要更新的文件的描述列表,这样就可以完成整个下载和更新的过程了.基本上就是这样了.