`
pcajax
  • 浏览: 2161876 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C#WinForm App自动更新(Live Update)架构

阅读更多

一. 基本思路
     一直做Web Form开发,最近开始尝试了一下Win Form,做了一个小系统,在发布了第一个可用版本之后,顺便实现了自动更新功能。之前没有这方面的经验,也没有翻阅相关资料,自己想了一个简单的思路,如有笑话之处,恳请批评指正。
    基本上就是这样的:
    客户端有两个子程序,简单的讲就是两个EXE,一个主的应用程序,一个自动Live Update程序,而在服务端,是一个WCF,提供程序版本更新信息和更新文件。
     每当程序启动(或手动点“检测更新”),主程序会调用服务端的WCF检测更新,若检测到新版本,则启动Live Update程序,同时关闭自身。
     Live Update启动后,调用服务端WCF,获取文件列表,然后直接下载更新文件并覆盖本地文件。完毕后启动主程序,同时关闭自身,这样,一次自动更新就完了。
二. 系统架构
      C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客
三. 序列图
      C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客

四. 其它
1. 检测新版本
     在WCF中会有一个XML配置文件,用于客户检测版本和更新文件。
    
2. 下载文件以及覆盖旧文件
     Live Update下载文件后先保存在临时文件夹,下载完毕后再从临时文件夹覆盖主应用程序的旧文件。防止自动更新中途失败导致主应用程序不可用。

3. WCF Contract(仅供参考)

  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客using System;
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客
using System.Collections.Generic;
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客
using System.Linq;
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客
using System.Text;
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客
using System.ServiceModel;
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客
namespace WendyFinance.UpdateCenter.Contract   C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客{
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客     [ServiceContract]
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客    
public interface IAutoUpdate   C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客{
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客         [OperationContract]
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客        
bool CheckUpdate(string clientVersion);
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客         [OperationContract]
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客        
string GetCurrentVersion();
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客         [OperationContract]
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客        
string GetUpdateDescription();
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客         [OperationContract]
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客         List
<string> GetFileList();
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客         [OperationContract]
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客        
string GetFile(string fileName);
  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客     }

  C#WinForm App自动更新(Live Update)架构 - hs_admin_jsjd - hs_admin_jsjd的博客}
分享到:
评论

相关推荐

    c#开发winform程序自动更新

    在C#开发Windows Forms(WinForm)应用程序时,自动更新功能是提高用户体验和软件可靠性的关键部分。这个功能允许程序检查服务器上的最新版本,并在有更新时自动下载和安装,无需用户手动操作。以下是实现这一功能的...

    c# winform 绘制多行文本:自动换行:文本

    c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制...

    C# Winform WPF 自动更新(基于FTP)

    当前资源在后续更新会以私信的方式发送,已经购买资源的朋友请不要取关,谢谢了 帖子地址: https://blog.csdn.net/qq_38693757/article/details/131223450?spm=1001.2014.3001.5502 具体的介绍请看帖子,这里文字...

    C#winform自动更新程序及DEMO

    本文将深入探讨如何使用C# WinForm构建一个自动更新程序,并通过提供的DEMO进行实战解析。 首先,自动更新程序是确保软件保持最新状态的关键组件,它能够检测新版本、下载更新内容并自动安装,从而提高用户体验。...

    C#WinForm自动升级程序源代码

    在本文中,我们将深入探讨如何使用C# WinForm来实现一个自动升级程序,这将对所有基于WinForm的客户端应用程序非常有用。这个程序的核心目的是帮助用户无缝地更新他们的应用程序到最新版本,从而确保他们始终拥有...

    c# winform 自动更新方案

    "C# WinForm 自动更新方案" 本文将详细介绍 C# WinForm 自动更新方案,涵盖了整个自动更新流程,从发布设置到版本控制,包括 IIS 配置和 ClickOnce 问题解决方法。 自动更新方案概述 自动更新方案是指在 C# ...

    C# WinForm软件通用自动更新源码.rar

    对于C/S架构来说,软件更新是一个很常用的功能,下面介绍一种非常实用的软件自动升级方案 2)在bin\Debug\下新建一个AutoUpdateDir文件夹,然后再在AutoUpdateDir下新建一个AutoUpdateFiles文件夹。 3)在...

    C# winform C/S模式自动更新

    本项目涉及的是一个C/S(Client/Server)模式下的C# WinForm客户端自动更新程序,它允许用户轻松地为他们的应用程序实现自动检查更新和下载新版本的功能。 首先,我们来了解C/S模式。在C/S架构中,客户端(Client)...

    C# Winform版本自动更新代码

    在.NET框架下,C#开发的Winform应用程序可以利用各种技术来实现实时的版本自动更新,以确保用户始终运行的是最新版本。本项目提供的代码着重于实现这一功能,通过以下核心组件: 1. **FrmUpdate.cs** - 这是主更新...

    C# winform 播放自动flv

    在C# WinForm应用中,实现FLV视频的播放可能会遇到一些挑战,因为.NET Framework默认并不支持FLV格式的直接播放。不过,通过第三方库或者转换视频格式,我们可以解决这个问题。这里,我们将深入探讨如何在WinForm...

    C# WinForm三层架构的搭建

    ### C# WinForm三层架构搭建详解 #### 一、引言 C# WinForm三层架构是一种常见的软件设计模式,它将应用程序分为表示层(UI层)、业务逻辑层(BLL层)和数据访问层(DAL层)。这种架构有助于提高系统的可维护性、可...

    c#winform开发框架

    C# WinForm开发框架是一种基于.NET Framework的桌面应用程序开发工具,它为开发者提供了一套完整的控件、设计模式和架构,使得创建具有丰富用户界面的Windows应用程序变得更加便捷和高效。这款框架尤其适合初学者,...

    C# winform 万能打印模板,可以打印证书,修改证书参数,C#窗体程序

    C# winform 万能打印模板,可以打印证书,修改证书参数,C#窗体程序,代码注释详细 C# winform 万能打印模板,可以打印证书,修改证书参数,C#窗体程序,代码注释详细 C# winform 万能打印模板,可以打印证书,修改...

    使用SimpleUpdater实现WinForm自动升级

    通过以上步骤,你就可以利用SimpleUpdater轻松实现C# WinForm应用的自动更新功能。记得在开发过程中测试各种情况,确保升级过程的稳定性和用户体验。同时,持续关注SimpleUpdater的更新,以便利用其新特性并修复可能...

    C#WinForm 程序自动升级 自动更新

    在C# WinForm应用程序开发中,自动升级和自动更新功能是至关重要的,它允许用户无需手动操作即可获取程序的最新版本。本教程将详细介绍如何利用VS2005通过HTTP协议实现这一目标。 首先,我们需要理解自动升级的基本...

    c# winform 自动升级

    在C# WinForm应用开发中,自动升级功能是提高用户体验和确保软件持续更新的重要特性。本文将基于提供的标题和描述,深入探讨如何实现C# WinForm应用的自动升级功能,并结合可能包含在"AutoUpdateExample"压缩包中的...

    WinForm AutoUpdate自动更新源码

    在.NET框架中,WinForm应用程序的自动更新是一个重要的功能,它允许用户轻松地获取和安装应用的最新版本,而无需手动下载和安装整个程序。"WinForm AutoUpdate自动更新源码"提供了一种实现这一功能的解决方案。这个...

    c#WinForm程序自动升级组件

    在IT行业中,C# WinForm应用的自动升级是开发者经常面临的一个重要任务,因为它能确保用户始终运行的是最新版本,从而提高软件的安全性和稳定性。本文将深入探讨如何使用"C# WinForm程序自动升级组件"来实现这一功能...

    C# winform自动更新实现

    在C# WinForm应用开发中,自动更新功能是提高用户体验和确保软件安全性的重要特性。它允许用户轻松地获取并安装程序的最新版本,无需手动下载和覆盖安装。本项目"**C# winform自动更新实现**"正是这样一个解决方案,...

    c# Winform 程序自动更新实现方法

    C# Winform程序的自动更新机制是一个重要的功能,它允许应用程序在运行时检查并安装新的更新,确保用户始终使用最新版本。以下是一个简单的步骤和关键知识点来实现这一功能: 1. **服务器部署**: - 首先,你需要...

Global site tag (gtag.js) - Google Analytics