Winform(C#.NET)自动更新组件的使用及部分功能实现
2013-11-28 22:27
786 查看
Winform(C#.NET)自动更新组件的使用及部分功能实现
声明:核心功能的实现是由园子里圣殿骑士大哥写的,本人是基于他核心代码,按照自己需求进行修改的。而AutoUpdaterService.xml文件生成工具是基于评论#215楼 ptangbao的代码而改写的。
由于这个组件是在10年写的,.net也有更新有的方法已提示过时,更改如下:
//Added the function to support proxy //clientDownload.Proxy = System.Net.WebProxy.GetDefaultProxy(); clientDownload.Proxy = WebRequest.GetSystemWebProxy();
更改的主要功能如下:
1》如果有更新将会直接更新,不再提供由用户点击确定后再更新。(强制更新)(这个暂时没有整理出来,后续会整理出来)
2》更新前判断主程序进程是否开启:
如果有更新,主程序开启,关闭主程序,更新完成后自动启动主程序。
如果没有更新,直接启动主程序。
3》不再根据版本号不同进行更新。
圣殿骑士大哥的是根据版本号,当然这也是最正规的,可是我们的程序有点特殊,所以不再根据版本号控制,而是根据GUID。
这样就是有一点好处不管版本号一不一样,只要GUID不一样就是要更新。
比如文件夹如下:
View Code
RemoteFile.cs
View Code
DownloadFileInfo.cs
View Code
ConstFile.cs
一些常量配置文件
View Code
OperProcess.cs
View Code
DownloadProgress.cs
View Code
以上就是整体的自动更新程序核心代码。
下面是创建xml的程序代码:
View Code
由于我的主程序是被别人写死的(没有修改权限没有代码)所以我只能单独写更新程序,由用户打开我的更新程序调用exe的方式来处理
所以多了一个程序专门用来更新的
View Code
1、服务器端
1、CreateXmlTools.exe给发布dll人员使用,用来生成要升级文件的列表,放在更新文件中的。
2、webServer地址是web服务器的地址。
3、点击生成之后会生成一个文件名为AutoupdateService.xml文件。
4、将生成的xml文件放置在web服务器的根目录里。
2、客户端
1、AutoUpdater.Config,该文件是保证客户端更新程序调用获取更新文件列表时使用的。
2、KnightsWarrior.exe更新主程序,用户直接调用该文件
3、AutoUpdater.dll更新程序的核心程序
本程序是要结合web服务器使用的,所有要更新的文件需要放在搭建的web服务器上,按照对应的目录存放,点CreateXmlTools.exe会生成一个xml文件的。
以上就是所有修改和增加部分的程序的代码及一些简要说明。建议先去看看组件源码,圣殿骑士大哥将其托管在托管地址。欢迎拍砖!
相关文章推荐
- Winform(C#.NET)自动更新组件的使用及部分功能实现(续)
- Winform(C#.NET)自动更新组件的使用及部分功能实现(一点改进功能)
- (转).NET 4.5中使用Task.Run和Parallel.For()实现的C# Winform多线程任务及跨线程更新UI控件综合实例
- C#.NET vs2010中使用IrisSkin4.dll轻松实现WinForm窗体换肤功能
- C#.NET vs2010中使用IrisSkin4.dll轻松实现WinForm窗体换肤功能
- 2011-03-08 走火入魔C#.NET通用权限管理系统组件改进功能部分
- c# winform 实现对postgresql数据库的自动备份还原功能
- 在WinForm中使用WebServices来实现软件自动升级(AutoUpdate)(C#)
- [转载]在WinForm中使用Web Services 来实现 软件 自动升级( Auto Update ) (C#)
- 在WinForm中使用Web Services 来实现 软件 自动升级( Auto Update ) (C#
- 使用FlexBox和Json实现类似ComboBox(类似Google的输入提示和自动)功能-基于JQuery-ASP.NET
- 在WinForm中使用Web Services 来实现 软件 自动升级( Auto Update ) (C#)
- 在WinForm中使用Web Services 来实现 软件 自动升级( Auto Update ) (C#)
- Android应用自动更新功能实现使用AsyncTask!
- C#[WinForm]实现自动更新(Auto Update)
- 使用ASP.NET Atlas AutoComplete Behavior或AutoComplete Extender实现自动完成功能(上) 【转自http://dflying.cnblogs.com】
- 在WinForm中使用Web Services 来实现 软件 自动升级( Auto Update ) (C#) skyover [原作]
- C# 软件下载插件,软件自动更新功能实现,通过cmd命令调用应用程序,应用程序实现单例启动
- C# WinForm 实现增删改查等功能(Access版) 系列之三-更新
- 在WinForm中使用Web Services 来实现 软件 自动升级( Auto Update ) (C#)