VS 程序自动更新——(方案二)

来源:互联网 发布:博客下载软件 编辑:程序博客网 时间:2024/06/05 00:26

前言

  在上一个方案中我们使用ClickOnce实现了程序的自动更新。既然有了这么简单可行的选择还需要费工夫更深入的研究其它“复杂”方案吗?我是这样想的,既然它这么实用,让我还有时间短暂总结,何不顺带看看它外面的世界又是怎样的景象。于是便有了我下面的总结:

再看 ClickOnce

  既然简单掌握了ClickOnce,就翻翻它的故事吧。ClickOnce是微软给我们提供的自动更新组件。
  可以采用三种不同的方法发布 ClickOnce 应用程序:从网页发布、从网络文件共享发布或是从媒体(如 CD-ROM)发布。ClickOnce 应用程序既可以安装在最终用户的计算机上并在本地运行(即使当计算机脱机时也可以运行),也可以仅以联机模式运行,而不在最终用户的计算机上永久安装任何内容。
  可以自行更新:应用程序可以在较新版本变为可用时检查较新版本,并自动替换所有更新的文件。开发人员可以指定更新行为;网络管理员也可以控制更新策略,如将更新标记为强制性的。最终用户或管理员还可以对更新进行回滚,使应用程序恢复到早期的版本。

想改进

  既然它已经能够实现对更新程序的基本需要,就结合实际需求来想想还有什么可改进的地方:
  ClickOnce 无疑是微软对Client/Server模式部署的最佳解决方案,但正是因为它的功能特别强大而且又要使用相当简单,所以在产品的封装上就特别严实,无形中把一些定制化的操作拒之于门外,让我们少了很多的比如:

①用户不能自己指定安装路径。
在Win7下,ClickOnce布置程序的安装目录一般为:
C:\Users\Administrator\AppData\Local\Apps\2.0

1

②对自动更新流程不能做定制化的操作。
在更新界面,只有一些必要更新选项设置

③无法对自动更新的UI定制化的设计。
2
  
  因为这些原因,很多企业都会做一些定制化的组件来实现自动更新的功能,基于此,我也从网上下载了多这样的源代码来捣鼓,尝试融入自己的程序。

自动更新组件

更新流程

为了说清自动更新组件的原理,这里我就列一下我用到的更新流程:

1.启动程序,先调用检测升级程序,升级程序连接到IIS服务器。

  1. 通过IIS访问获取服务器端XML配置文件中Version新版本程序的更新日期或版本号。

3.升级程序获取原有客户端应用程序的最新版本号,两者进行比较;如果有较新版本日则提示用户是否升级。

4.如果用户选择升级,则获取下载文件列表;

5.在本地建立与远程IIS相应的临时目录,然后下载到这个临时目录文件下。

6.删除旧的文件,将临时文件夹中的文件移动到相应的位置;

8.结束升级流程并重新启动主程序。

原创粉丝点击