您的位置:首页 > 其它

SharpUpdater:开源的.NET桌面程序自动更新组件

2012-04-06 21:50 561 查看
SharpUpdater开源了!
http://sharpupdater.codeplex.com/

简 介

SharpUpdater是一个开源的.NET Windows桌面程序自动更新的组件。它提供一个启动程序在主程序启动时检测最新版本并升级。此外,还提供了一个VS插件生成配置清单。

工作原理

依赖于一个发布清单的XML配置文件(我们称之为ReleaseList),通过对比客户端和服务端的ReleaseList,计算出需要更新的文件,然后逐一下载覆盖本地客户端程序文件或资源文件。

配置文件示例:

<ReleaseList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ApplicationStart>demo.exe</ApplicationStart>
<AppName>Demo</AppName>
<MinVersion>1.0.0.0</MinVersion>
<ReleaseDate>2011/9/23 9:25:24</ReleaseDate>
<ReleaseUrl>http://host/demo/</ReleaseUrl>
<ReleaseVersion>1.1.0.0</ReleaseVersion>
<ShortcutIcon>demo.ico</ShortcutIcon>
<UpdateDescription><![CDATA[1.new feature
2.updte
3.bug fix]]></UpdateDescription>
<Files>
<ReleaseFile>
<FileName>log4net.dll</FileName>
<ReleaseDate>2011/8/19 9:04:38</ReleaseDate>
<FileSize>182</FileSize>
</ReleaseFile>
<ReleaseFile>
<FileName>Demo.exe</FileName>
<ReleaseDate>2011/9/23 9:25:21</ReleaseDate>
<FileSize>1798</FileSize>
</ReleaseFile>
</Files>
</ReleaseList>


效果图



ReleaseList Builder

这是一个VS插件,执行编译并根据Build出的文件一键生成发布清单。


  

后 记

2009年,在为某电商企业做项目时发现ClickOnce存在一个严重的缺陷——当网络状态不好时(如丢包),更新失败后不能回滚,重启程序也不能,只能卸装重装。为了解决此问题,于当年春节开发了此组件。后应用于多个项目,效果良好。

当前稳定版本为1.0。

开发计划:

V2.0
增加zip压缩发布方式
增加后台下载更新包,下一次启动时安装
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: