自动更新

using System;
using System.Xml;
using System.Collections.Generic;
using System.Windows.Forms;

namespace AutoUpdate
{
    static class Program
    {
        private static string ExeFile = "AutoUpdate1.exe";  //更新主程序
        private static string ClientFile = "ClientUpdate.XML";  //客户端更新配置文件
        private static string ServerFile = @"Http://192.168.1.101/AutoUpdate/ServerUpdate.XML";  //服务器端更新配置文件

        /// <summary>
        /// 應用程式的主要進入點。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            if (NeedUpdate())
            {
                try
                {
                    System.Diagnostics.Process.Start(ExeFile);  //执行更新主程序
                }
                catch
                {
                    MessageBox.Show("启动自动更新程序失败, 请联系...");
                }
                Application.ExitThread();
            }
            else
                Application.Run(new Form1());
        }

        static bool NeedUpdate()
        {
            string ClientVer = "";
            string ServerVer = "";
            try
            {
                ClientVer = GetNodeText(ClientFile, "version");
                ServerVer = GetNodeText(ServerFile, "version");
            }
            catch
            {
                return false;
            }
            if (ServerVer.CompareTo(ClientVer) > 0)  //比较版本,可以加其它条件
                return (MessageBox.Show("检查到有新版本,是否需要更新?", "信息", MessageBoxButtons.YesNo) == DialogResult.Yes);
            else
                return false;
        }

        static string GetNodeText(string fileName,string nodeName)
        {
            XmlDocument XmlDoc = new XmlDocument();
            XmlDoc.Load(fileName);
            XmlElement root = XmlDoc.DocumentElement;
            XmlNode UpdateNode = root.SelectSingleNode(nodeName);
            return UpdateNode.InnerText;
        }

        static string[] GetNodeText(string fileName, string[] nodeName)
        {
            string[] result=new string[nodeName.Length];
            XmlDocument XmlDoc = new XmlDocument();
            XmlDoc.Load(fileName);
            XmlElement root = XmlDoc.DocumentElement;
            XmlNode UpdateNode;
            for(int i=0;i<result.Length;i++)
            {
                UpdateNode= root.SelectSingleNode(nodeName[i]);
                result[i]=UpdateNode.InnerText;
            }
            return result;
        }
    }
}

转载于:https://www.cnblogs.com/Hawk-Hong/archive/2007/06/06/773255.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值