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;
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律