zoukankan      html  css  js  c++  java
  • 开源的.NET桌面程序自动更新组件 ——Sharp Updater 2.1发布

    开源的.NET桌面程序自动更新组件 ——Sharp Updater 2.1发布

     SharpUpdater是一个基于.net Framework,将自动更新功能添加到您的windows桌面程序的引导程序。从2.0版本起,它也是一个解决方案,增加了一个示例服务端,提供了一组API供开发人员扩展。

     
    一、工作原理
     
        Updater.exe 从服务端下载最新版本的发布清单配置文件,同本地发布清单进行比较,如果发现本地版本落后,则从服务端下载差异文件,覆盖到本地, 然后启动主程序。
     
    二、服务端配置
     
        以IIS7.5为例
        1、新建一个IIS站点。
        2、禁用*.dll程序处理映射,以允许dll文件下载。
             
       3、在此站点下创建桌面程序子目录,如~/demo/。
     
    三、客户端配置
     
          1、包括或引用SharpUpdater.Util.dll/Updater.exe,如果需要用到zip格式更新包,还需要包括ICSharpcode.SharpZipLib.dll/CnSharp.ZipUtil.dll
        
        2、主程序入口增加对Updater的互操作代码
          
    复制代码
    private static void Main(string[] args)
        {
                if (args.Length == 0)
                {
                    Process.Start("updater.exe");
                    Application.Exit();
                    return;
                }
                if (!args[0].StartsWith("ok"))
                {
                    Application.Exit();
                    return;
                }
     
     
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
    复制代码
     
    四、打包发布
     
        1、SharpPack
             SharpPack是一个VS2010扩展,用于生成WinForm程序并发布清单
     
    右击WinForm项目,选择Package and Publish命令
            
    设置Assembly版本号

    挑选需要发布的文件,填写Release List相关字段
        
    2、将bin目录下生成的ReleaseList.xml和1.0.0.0文件夹上传到服务端的~/Demo/下
     
     
     
    五、可扩展性
     
    1、Updater的扩展
        1)实现 CnSharp.Windows.Updater.Util.UpdateProxy.IUpdateProxy
          在SharpUpdater的源代码中,我们没有实现此接口,参见CnSharp.Windows.Updater/Common.cs/Ln.14。因此默认情况下只显示待更新版本当前版本的更新日志;假设用户从V1.0升级到V1.4,则只能看到V1.4的更新日志,看不到V1.1~V1.3的。开发人员可自行实现它。
        2)SharpUpdater源码基于MIT协议,你可以自由修改。
     
    2、SharpPack的扩展
         1)基类: CnSharp.Windows.Updater.SharpPack.Connect
              提供了一组protected virtual方法,你可以重写它们自定义UI或操作。
         2)接口:IVersionControl
             此接口帮助你签出 AssemblyInfo.cs 以修改版本号。默认实现了TFS,你可以自行实现其他版本控制工具如SVN。
     
    六、开源
     
     
    作者:CnSharp.com
    本文版权归CnSharp.com和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
     
  • 相关阅读:
    详解SQL Server的两个存储过程:sp_MSforeachtable/sp_MSforeachdb
    使用WorkService创建定时任务
    Mahout下个性化推荐引擎Taste介绍
    Apache Mahout中的机器学习算法集
    内网信息收集笔记 楼下的小可怜
    关于linux的suid提权 楼下的小可怜
    Cobalt Strike初探 楼下的小可怜
    Google hacking 楼下的小可怜
    Git和Repo扫盲——如何取得Android源代码 zt
    Howto find native code memory leak in Android
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3015748.html
Copyright © 2011-2022 走看看