博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
转载:编写自动升级程序(思路)
阅读量:6698 次
发布时间:2019-06-25

本文共 1608 字,大约阅读时间需要 5 分钟。

冷静地分析了一下

程序说明:

1   web站点一个

     用途:A.提供下载源(dll,exe,图片...等等...所有最新文件)

               B.那个啥...嗯....弄个页面,输出xml格式的数据(用response.write输出)这个xml数据要体现,当前版本号,文件名等信息,就是把DataTable以xml表现出来形如以下。(当然,完全可以用WebService,只是个人认为用xml更专业,更节约)

2   升级程序一个

     用途:A.负责判断是否需升级

               B.下载需要升级的文件

               C.将老文件替换成新文件

3   你要升级的程序,在此不多说。看接下来的细节。

 

很重要的说明:升级程序是一个独立的exe文件,让它跟主程序打包在一起,安装后在同一个目录下边。前面三个程序相辅相成,才能完成自动升级更新。看细节吧。

 

接下来是细节了,很冷静的细节,你运气好,碰上我今天刚好心情差,给你说详细。(1,2,3....表示步骤)

1步:往web站点中传文件,记得接收文件的时候改一下后缀名(统一改为.rar或.txt)这样,web服务器(IIS)不会因为安全因素将特别文件(.dll,.exe等)拒之门外。同时,往数据表中记录以下属性(文件真实名[如:ABC.exe]、文件下载地址、相对根路径的路径、文件版本号[有版本号的(如:dll,exe)取版本号,没版本号的(如:jpg)取MD5值])

特别说明:版本号、你可以百度“C#获取文件版本号”获取相关代码。

 

很尴尬  ==! 这里有一步要说明一下:主程序启动时,启动升级程序(Process可做到)有问题百度“C#启动其它应用程序”

 

2步:升级程序请求生成xml的页面(实际上就是一个aspx,只是输出的内容是 xml 形式的,用response.write输出),或者你直接用webservice提供一个方法返回第一步中提及的数据表(DataTable).

 

3步:升级程序将xml内容转译成datatable、如果用webservice这一步就省了。

 

4步:升级程序遍历第三步获取的datatable、根据"相对根路径的路径"获取本地老文件的信息,如果本地有文件,就获取版本号,或者MD5值,如果本地没有文件、或版本号不等、或者MD5值不等则表示这个文件得更新(把这条信息(DataRow)存入队列(数组))这一步,知道了有哪些文件需要下载。

 

5步:升级程序根据第 4步 中得到的队列逐一下载文件到 (Temp目录) 

 

6步:升级程序关闭主程序进程(Process类可做到),有问题可以 百度“C#结束其它进程”,这样要杀要剐老文件就随你了,因为它们将不再被其它进程所占有。

 

7步:升级程序将第   5步 中下载的文件根据 "相对根路径的路径"  字段逐一移到对应目录,将老文件替换。

 

8步:工作完成,升级程序启动主程序(Process类可以做到) 有问题可以百度“C#打开其它exe”

 

9步:没了,没啥好说的了。

 

下载可以用:httprequest,httpresponse这两个类,具体见msdn,用它们可做断点续传,实时进度条,多线程下载。你还可以用WebClient它不怎么样,一次下一个文件,无法实现断点续传,无法实时获取进度,最重要的一点,用它显得不专业。

 

思路在这了,绝对错不了。

我叫绿豆蛙,别人喜欢叫我三爷,我很多年没碰C/S了,幻想有一天还能做个C/S的项目。哥哥我今天心情不好,因为我快结婚了,压力特别大。

补充回答: 不好意思啊,我这个是自己写代码实现的意思,就是自己开发个升级程序了,不是那什么微软可笑的一键部署技术(我曾用试过,后来觉得让我很尴尬,就什么发布到一站点然后访问点一下按钮就安装了,最后能访问站点时自动更新,不能访问时执行本地,你就连它装在客户端哪个位置都不知道,很尴尬的。微软一键部署技术是浮云,反正我是不信它,你信它还是信我呢?你开始肯定是信它了,哈哈。)。

转载地址:http://biloo.baihongyu.com/

你可能感兴趣的文章
10种顶级javascript框架比较-The Top 10 Javascript MVC Frameworks
查看>>
HAproxy + Keepalive实现LDAP代理服务
查看>>
plone进行 用户和权限管理
查看>>
利用ACS来实现AAA服务
查看>>
VMware Workstation 8下Ubuntu 13.04中安装VMware Tools出错
查看>>
Tokyo Tyrant安装和配置
查看>>
php调试
查看>>
轻松获知数据库事务
查看>>
linux top命令详解
查看>>
Weblogic的管理服务器与受管服务器
查看>>
国内开源镜像站
查看>>
Eclipse下的项目管理插件介绍
查看>>
vb.net中东软医保接口的调用
查看>>
grub加密
查看>>
初级第一旬05— 蓝字观试题
查看>>
nginx的upstream目前支持5种方式的分配
查看>>
Linux 将进程放入后台执行,解决网络,ssh断开导致进程结束(nohup, setsid, &, disown)...
查看>>
java 消息摘要算法MD
查看>>
ORA-00119错误的解决。
查看>>
教师生涯由此开始
查看>>