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