c# Winfrom桌面软件自动升级系统
对于开发桌面应用升级应该是我们第一个要考虑的。一般而言一个项目只有一个客户端,有的时候一个项目可能分好几个客户端,前台客户端,后台客户端。而我在网上找了很久也没有找到可以同时管理多个客户端升级的。所以自己一边学习一边制作了一个,之前我使用的是oaus自动升级软件因为这个通信免费版的只能用10个人。所以自己做的这个大量模仿了oaus。这是他们的网址http://blog.oraycn.com/OAUS.aspx
通信的协议使用的是开源项目NetWorkComms.net。本人测试传输1g的文件是没问题的
对于每个版本只更新了一个两个文件,以及增加删除了几个文件,升级时都可以对应的更新覆盖,以及删除客户端本地的文件
一、服务端介绍
文件的目录其中FileFolder文件夹是存放部署好的升级文件
服务端的配置文件可以设置端口其他的就不需要修改了打开服务端点击第一个新增项目
输入项目的名称,我这里已DiskGenius为例
创建成功之后会在列表中显示,也会在服务端的配置生成这个项目的版本
同时会在FileFolder文件夹中生成这个项目的路径用来放这个项目的文件,这个时候我们只要把正常客户端的文件拷贝进去,要注意的是这里面的路径什么的和正常客户端的都是一样的
点击项目的更新会自动扫描目录下更新了几个文件,删除了几个文件,以及新增了几个
之后只要有新的文件需要更新拷贝到对应项目的目录下然后点击更新按钮即可
二、客户端
升级客户端必须放在我们项目客户端的根目录,打包的时候可以带进去进行打包
客户端的File文件夹是存放下载好的文件,等所有文件下载完毕之后会进行覆盖,Temp文件夹是用来缓存下载的文件,Client.ext.config配置文件中要进行配置
在配置文件中配置好服务器ip和端口以及升级完成后要升级的app.还有要配置一下升级的项目名称,这个项目名称要与服务端创建的项目名一致这样子就会下载对应项目的升级文件了当我们启动自己的程序时可以应用类库MessageContract.dll中的HasNewVersion.GetIsNewVersion();方法,这个方法返回布尔值确定是否需要升级,如果需要升级可以及在自己的程序中启动升级程序进行升级
下载完成之后用户点击启动即可启动自己的应用程序
到此这个升级就完成了。
下载地址链接: https://pan.baidu.com/s/1AaAOEpVVxWYSfIdeAiqzvg
大家如果有问题可以
Console.WriteLine(”加群“+"537905238");
c# Winfrom桌面软件自动升级系统的更多相关文章
- 在C#中实现软件自动升级
在C#中实现软件自动升级 winform程序相对web程序而言,功能更强大,编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,本文结合实际情况,通过软件实现自动升级,弥补了这一缺陷,有较好的 ...
- 自动升级系统OAUS的设计与实现(续) (附最新源码)
(最新OAUS版本请参见:自动升级系统的设计与实现(续2) -- 增加断点续传功能) 一.缘起 自从 自动升级系统的设计与实现(源码) 发布以后,收到了很多使用者的反馈,其中最多的要求就是希望OAUS ...
- HTML5进阶(三)HBuilder实现软件自动升级(优化篇)
HBuilder实现软件自动升级(优化篇) 前言 受前篇博客<HTML5进阶(二)HBuilder实现软件自动升级>(点击查看详情)的影响,测试过程中发现APP自动更新还是存在问题,第一次 ...
- HTML5进阶(二)HBuilder实现软件自动升级
HBuilder实现软件自动升级 前言 移动APP开发好后需要实现软件自动升级功能,经过一番搜索,发现HBuilder具有"App资源在线升级更新"的功能,遂研究之. 经过一番测试 ...
- java CS结构软件自动升级的实现
前段时间做了一个工具发布给公司的各部门使用后反馈了不少BUG,每次修改后均需要发邮件通知各用户替换最新版本,很不方便,因此后来就写了一个自动升级的功能,这样每次发布新的版本时只需要将其部署到自动升级服 ...
- 在WinForm中使用Web Service来实现软件自动升级
来源:互联网 winform程序相对web程序而言,功能更强大编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,面对这个实际问题,在最近的一个小项目中,本人设计了一个通过软件实现自动升级技术 ...
- 在WinForm中使用Web Services 来实现 软件自动升级( Auto Update ) (C#)
winform程序相对web程序而言,功能更强大,编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,面对这个实际问题,在最近的一个小项目中,本人设计了一个通过软件实现自动升级技术方案,弥补了 ...
- 在WinForm中使用Web Services 来实现 软件 自动升级( Auto Update ) (C#)
winform程序相对web程序而言,功能更强大,编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,面对这个实际问题,在最近的一个小项目中,本人设计了一个通过软件实现自动升级技术方案,弥补了 ...
- c# 基于FTP协议的简易软件自动升级程序
最近在重写了一个老的产品条码扫描程序,客户端数越有30个,因为经常有更新,C/S维护非常不方便,所以做一个自动更新程序特别有必要. 在网上随便找了找自动更新的方案,大多使用VS的发布/更新功能,不太喜 ...
- 用C#实现C/S模式下软件自动在线升级
用C#实现C/S模式下软件自动在线升级 1 前言 长期以来,广大程序员为到底是使用Client/Server,还是使用Browser/Server结构争论不休,在这些争论当中,C/S结构的程序可维护性 ...
随机推荐
- 【面试题】JS改变this指向的三种方法
一.this指向 点击打开视频讲解更加详细 this随处可见,一般谁调用,this就指向谁.this在不同环境下,不同作用下,表现的也不同. 以下几种情况,this都是指向window 1.全局作用下 ...
- 微信小程序开发总结-怀庄酒业投票活动
使用微信小程序投票活动云开发 怀庄酒业活动 使用云开发.开始准备使用django开发自己的后台,但是发现功能比较简单,使用云开发更省事 项目结构: cloudfunctions目录下是三个云函数 ba ...
- EFK-2:ElasticSearch高性能高可用架构
转载自:https://mp.weixin.qq.com/s?__biz=MzUyNzk0NTI4MQ==&mid=2247483811&idx=1&sn=a413dea65f ...
- Linux实例常用内核网络参数介绍与常见问题处理---重要
文章转载自:https://help.aliyun.com/knowledge_detail/41334.html 本文主要介绍如下几点内容,您可以根据实际需要选择. 查看和修改Linux实例内核参数 ...
- 使用sed在源文件上直接替换某一行的内容,只替换第一次找到的那行
sed -i 's/^mysqld_pid_file_path=.*$/mysqld_pid_file_path=\/data\/mysql\/run\/mysqld.pid/' /etc/init. ...
- Compose 命令说明
命令对象与格式 对于 Compose 来说,大部分命令的对象既可以是项目本身,也可以指定为项目中的服务或者容器.如果没有特别的说明,命令对象将是项目,这意味着项目中所有的服务都会受到命令影响. 执行 ...
- Optional源码解析与实践
1 导读 NullPointerException在开发过程中经常遇到,稍有不慎小BUG就出现了,如果避免这个问题呢,Optional就是专门解决这个问题的类,那么Optional如何使用呢?让我们一 ...
- CF600E Lomsat gelral (线段树合并)
相当于是线段树合并的模板题,比(雨天的尾巴)还要板. 唯一注意的是线段树的更新,因为同一子树中可能有多种颜色占主导地位,要输出编号和,比如一颗子树中,1出现3次(最多),3出现3次,那么应该输出4. ...
- GCN的原理及其代码实现
图数据的特征性质 图像数据是一种特殊的图数据,图像数据是标准的2D网格结构图数据.图像数据的CNN卷积神经网络算法不能直接用在图数据上,原因是图数据具有以下特殊性. 节点分布不均匀:图像数据及网格数据 ...
- FJOI2007轮状病毒 行列式递推详细证明
题目链接 题目给了你一个奇怪的图,让你求它的生成树个数. 开始写了一个矩阵树: #include<cstdio> #include<cstdlib> #include<c ...