对于开发桌面应用升级应该是我们第一个要考虑的。一般而言一个项目只有一个客户端,有的时候一个项目可能分好几个客户端,前台客户端,后台客户端。而我在网上找了很久也没有找到可以同时管理多个客户端升级的。所以自己一边学习一边制作了一个,之前我使用的是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桌面软件自动升级系统的更多相关文章

  1. 在C#中实现软件自动升级

    在C#中实现软件自动升级 winform程序相对web程序而言,功能更强大,编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,本文结合实际情况,通过软件实现自动升级,弥补了这一缺陷,有较好的 ...

  2. 自动升级系统OAUS的设计与实现(续) (附最新源码)

    (最新OAUS版本请参见:自动升级系统的设计与实现(续2) -- 增加断点续传功能) 一.缘起 自从 自动升级系统的设计与实现(源码) 发布以后,收到了很多使用者的反馈,其中最多的要求就是希望OAUS ...

  3. HTML5进阶(三)HBuilder实现软件自动升级(优化篇)

    HBuilder实现软件自动升级(优化篇) 前言 受前篇博客<HTML5进阶(二)HBuilder实现软件自动升级>(点击查看详情)的影响,测试过程中发现APP自动更新还是存在问题,第一次 ...

  4. HTML5进阶(二)HBuilder实现软件自动升级

    HBuilder实现软件自动升级 前言 移动APP开发好后需要实现软件自动升级功能,经过一番搜索,发现HBuilder具有"App资源在线升级更新"的功能,遂研究之. 经过一番测试 ...

  5. java CS结构软件自动升级的实现

    前段时间做了一个工具发布给公司的各部门使用后反馈了不少BUG,每次修改后均需要发邮件通知各用户替换最新版本,很不方便,因此后来就写了一个自动升级的功能,这样每次发布新的版本时只需要将其部署到自动升级服 ...

  6. 在WinForm中使用Web Service来实现软件自动升级

    来源:互联网 winform程序相对web程序而言,功能更强大编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,面对这个实际问题,在最近的一个小项目中,本人设计了一个通过软件实现自动升级技术 ...

  7. 在WinForm中使用Web Services 来实现 软件自动升级( Auto Update ) (C#)

    winform程序相对web程序而言,功能更强大,编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,面对这个实际问题,在最近的一个小项目中,本人设计了一个通过软件实现自动升级技术方案,弥补了 ...

  8. 在WinForm中使用Web Services 来实现 软件 自动升级( Auto Update ) (C#)

    winform程序相对web程序而言,功能更强大,编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,面对这个实际问题,在最近的一个小项目中,本人设计了一个通过软件实现自动升级技术方案,弥补了 ...

  9. c# 基于FTP协议的简易软件自动升级程序

    最近在重写了一个老的产品条码扫描程序,客户端数越有30个,因为经常有更新,C/S维护非常不方便,所以做一个自动更新程序特别有必要. 在网上随便找了找自动更新的方案,大多使用VS的发布/更新功能,不太喜 ...

  10. 用C#实现C/S模式下软件自动在线升级

    用C#实现C/S模式下软件自动在线升级 1 前言 长期以来,广大程序员为到底是使用Client/Server,还是使用Browser/Server结构争论不休,在这些争论当中,C/S结构的程序可维护性 ...

随机推荐

  1. git hooks在业务中的使用

    起因 最近公司项目发生了一起线上事故,最后排查下来是配置文件的问题.项目里application.yml文件内会用@build.time@记录打包时的时间,但是这个写法是build-helper-ma ...

  2. 坚守自主创新,璞华HawkEye IETM系统惠及国计民生

    可上九天揽月,可下五洋捉鳖,这是我们很多年的梦想.而要实现这样的梦想,不仅需要安全可靠的技术装备,还需要让这些技术装备处于良好的维保状态.于是,作为装备维保过程中必须的知识创作.管理.发布.浏览工具, ...

  3. 基于electron+vue+element构建项目模板之【改造项目篇】

    1.概述 开发平台OS:windows 开发平台IDE:vs code 上一篇中已完成了electron-vue项目的创建,本篇章中则介绍在此项目基础上进行取消devtools的安装.项目结构的改造. ...

  4. vscode常用快捷键及插件

    macOS 全局 Command + Shift + P / F1 显示命令面板 Command + P 快速打开 Command + Shift + N 打开新窗口 Command + W 关闭窗口 ...

  5. 重要参考步骤---ProxySQL实现读写分离

    MySQL配置主从同步文章地址:https://www.cnblogs.com/sanduzxcvbnm/p/16295369.html ProxySQL实现读写分离与读负载均衡参考文档:https: ...

  6. 查看当前看k8s集群支持的版本命令

    # kubectl api-versions admissionregistration.k8s.io/v1 admissionregistration.k8s.io/v1beta1 apiexten ...

  7. 在Ubuntu 主机上使用 Cockpit 管理容器

    如果你管理着一台 Linux 服务器,那么你可能正在寻找一个可靠的管理工具.为了这个你可能已经看了 Webmin 和 cPanel 这类软件.但是,如果你正在寻找一种简单的方法来管理还包括了 Dock ...

  8. nsis离开自定义页面保存设置

    这是群里一位朋友问他的自定义页面设置完成后返回上一步无法保存怎么办写的一个小例子,拓展了下,只要不关闭,不管上一步还是进入下一步返回都可以保留原页面设置. !include LogicLib.nsh ...

  9. SpringBoot常用场景

    SpringBoot-常见场景 1.热部署 ​ SpringBoot为我们提供了一个方便我们开发测试的工具dev-tools.使用后可以实现热部署的效果.当我们运行了程序后对程序进行了修改,程序会自动 ...

  10. 齐博x1关于小程序个性源代码的说明

    系统默认推荐商家小程序使用通用型的源码,即框架套壳iframe形式的.这个灵活性更高.但如果有特殊需求的话,也可以设置个性源码,比如配合uni-app使用,针对不同的小程序就使用不同的uni-app风 ...