文档章节

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

鱼煎
 鱼煎
发布于 2015/07/20 22:44
字数 412
阅读 142
收藏 1

简  介

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
10.2.updte
11.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出的文件一键生成发布清单。

 

VS addin screenshot

后  记

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

当前稳定版本为1.0。

开发计划:

V2.0
增加zip压缩发布方式
增加后台下载更新包,下一次启动时安装

作者:CnSharp.com
出处:http://www.cnblogs.com/cnsharp/

本文转载自:

鱼煎
粉丝 17
博文 218
码字总数 40364
作品 0
深圳
技术主管
私信 提问
开源代码管理:如何安全地使用开源库与框架?

来源:TechTarget中国 发布时间:2013-08-26   在开发内部和外部应用程序时,企业越来越多地使用开源代码——这是合理的。使用免费预构建的组件,而不用自行编写代码,能够显著缩短应用开发...

LiSteven
2014/05/11
3
0
Element 2.7.2 发布,基于 Vue 2.0 的桌面端组件库

Element 2.7.2 发布了,Element 是一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库,提供了配套设计资源,帮助你的网站快速成型。由饿了么公司前端团队开源。 新版更新内容...

段段段落
04/04
1K
2
Linux Deepin 12.12.1 发布

一、概述 Linux Deepin 12.12.1是Linux Deepin 12.12的修正版和功能增强版,本版本重点解决了12.12发布以来社区反馈的问题。该版本的发布,使得Linux Deepin 12.12更加健壮。您可以通过本发布...

火耳
2013/08/07
5.1K
53
Facebook 开源其调试平台 Sonar,支持 Android 与 iOS

Facebook 在其官网宣布,正式开源其内部用于移动应用调试的平台 Sonar。 项目地址:https://github.com/facebook/Sonar Sonar 是一个用于调试 iOS 和 Android 移动应用的平台,通过一个简单的...

h4cd
2018/06/13
3.9K
7
Gnome shell 启动器扩展 Dash to Panel 进行了重大更新

Gnome shell 启动器扩展 Dash to Panel 进行了重大更新 IMCN 4分钟前暂无评论 阅读 3 次 现在可以使用全新版本的Dash to Panel GNOME Shell扩展 – 有一些很棒的变化。 对于那些不知道的人来...

IMCN
08/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
6
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
8
0
详解箭头函数和普通函数的区别以及箭头函数的注意事项、不适用场景

箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱。就是这种我们日常开发中一直在使用的API,大部分同学却对它的了解程度还是不够深... 普通函数和...

OBKoro1
昨天
7
0
轻量级 HTTP(s) 代理 TinyProxy

CentOS 下安装 TinyProxy yum install -y tinyproxy 启动、停止、重启 # 启动service tinyproxy start# 停止service tinyproxy stop# 重启service tinyproxy restart 相关配置 默认...

Anoyi
昨天
2
0
Linux创建yum仓库

第一步、搞定自己的光盘 #创建文件夹 mkdir -p /media/cdrom #挂载光盘 mount /dev/cdrom /media/cdrom #编辑配置文件使其永久生效 vim /etc/fstab 第二步,编辑yun源 vim /ect yum.repos.d...

究极小怪兽zzz
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部