zoukankan      html  css  js  c++  java
  • OOS升级服务

    给我们的应用程序做个版本更新服务,展示一个安装程序如何实现自动更新.

      //服务组,添加需要的任何服务
        public enum ServerEnum
        {
            AutoupdateService,//自动升级
            AutoBack,//自动备份
            AutoLog//日志服务
            
    
        }
        //服务控制器
       public class ServerController
        {
           public void RunServer(ServerEnum ser)
           {
               switch (ser)
               {
                   case ServerEnum.AutoupdateService:
                       AutoupdateService auds = new AutoupdateService();
                       auds.Run();
                       break;
                   case ServerEnum.AutoBack:
                       break;
                   case ServerEnum.AutoLog:
                       break;
                   default:
                       break;
               }
           }
           
        }

    创建一个升级服务

       //升级服务
      public  class AutoupdateService
        {
          //建立多线程
          private System.Threading.Thread td;
          private System.Threading.ThreadStart ts;
    
    
          public void Run()
          { 
              ts = new System.Threading.ThreadStart(this.GetServerXml);
              td = new System.Threading.Thread(ts);
              td.Priority = System.Threading.ThreadPriority.Lowest;
              td.Name = "AutoupdateService";
              td.Start();
              Console.WriteLine("自动服务升级程序在运行");
            
          }
    
    
          //
          public void GetServerXml()
          {
              System.Net.WebClient wc = new System.Net.WebClient();
              //从远程地址下载版本信息
              wc.DownloadFile("http://files.cnblogs.com/BABLOVE/Appxml.xml", @"c:Appxml.xml");
              //解析xml文件,获取地址和版本
              System.Data.DataSet ds = new System.Data.DataSet();
              ds.ReadXml(@"c:Appxml.xml");
              System.Data.DataTable dt = ds.Tables[0];
              string ver = dt.Rows[0]["version"].ToString();
              string url = dt.Rows[0]["url"].ToString();
    
              //版本对比
              if (System.Windows.Forms.Application.ProductVersion != ver)
              {
                  Uri uri = new Uri(url);
                  wc.DownloadFile(new Uri(url), @"c:" + uri.Segments[uri.Segments.Length - 1].ToString());
                  System.Windows.Forms.DialogResult dr = System.Windows.Forms.MessageBox.Show("应用程序已经更新,是否进行安装?", "提示", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Information);
    
                  if (dr == System.Windows.Forms.DialogResult.Yes)
                  {
                      System.Diagnostics.Process.Start(@"c:" + uri.Segments[uri.Segments.Length - 1].ToString());
                      System.Windows.Forms.Application.DoEvents();
                      System.Threading.Thread.Sleep(10000);
                      System.Windows.Forms.Application.Exit();
                  }
              }
    
          }
        }

    然后是进行服务启动

      /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
    
                
                //启动服务组
                Service.ServerController sc = new Service.ServerController();
                sc.RunServer(Service.ServerEnum.AutoupdateService);
    
                //下面的服务没实现
                sc.RunServer(Service.ServerEnum.AutoBack);
                sc.RunServer(Service.ServerEnum.AutoLog);
    
    
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
        }

    我们可以添加我们想得任何服务,给我们的安装程序实现更新,我们也可以通过做一个漂亮的壳程序做为引导向,来完成整个过程的升级!

    demo:http://files.cnblogs.com/BABLOVE/OOS%E5%8D%87%E7%BA%A7%E6%9C%8D%E5%8A%A1.rar

  • 相关阅读:
    R语言中的logical(0)和numeric(0)以及赋值问题
    创建hadoop用户
    虚拟机安装
    spark1-MapReduce
    arcgis1-shp转成mdb
    Actor-配置Maven
    scala6-单词计数(map(),flatMap())
    scala5-数组
    scala4-函数
    scala3-for循环
  • 原文地址:https://www.cnblogs.com/BABLOVE/p/3308312.html
Copyright © 2011-2022 走看看