posts - 60,comments - 3,views - 23738

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;
        }
    }
}

posted on   Hawk_Yuan  阅读(883)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2007年6月 >
27 28 29 30 31 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
1 2 3 4 5 6 7

点击右上角即可分享
微信分享提示