UpdateVer.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.Net;
using System.Xml;
using System.IO;
using System.Diagnostics;
namespace FtpTest
{
class UpdaetVer
{
public string PreVer;
public string CurVer;
public string UpdatePath;
public string CurPath;
public string ExeFileName;
public string[] Files;
public void LoadXml()
{
XmlDocument doc = new XmlDocument();
doc.Load("updatever.xml");
XmlNode node = doc.ChildNodes[1];
PreVer = node.ChildNodes[0].InnerText;
UpdatePath = node.ChildNodes[1].InnerText;
CurPath = node.ChildNodes[2].InnerText;
ExeFileName = node.ChildNodes[3].InnerText;
int filecount = node.ChildNodes[4].ChildNodes.Count;
Files = new string[filecount];
for (int i = 0; i < filecount; i++)
{
Files[i] = node.ChildNodes[4].ChildNodes[i].InnerText;
}
}
public void SaveXml()
{
XmlDocument doc = new XmlDocument();
doc.Load("updatever.xml");
XmlNode node = doc.ChildNodes[1];
node.ChildNodes[0].InnerText = CurVer;
doc.Save("updatever.xml");
}
public bool CheckVersion()
{
LoadXml();
Assembly a = Assembly.LoadFrom(UpdatePath + ExeFileName);
Version newver = a.GetName().Version;
CurVer = newver.ToString();
Version oldver = new Version(PreVer);
int check = newver.CompareTo(oldver);
if (check > 0)
return true;
else
return false;
}
public void UpdateVersion()
{
if (!Directory.Exists(CurPath))
{
Directory.CreateDirectory(CurPath);
}
WebClient webclient = new WebClient();
string exefilename = ExeFileName;
webclient.DownloadFile(UpdatePath + exefilename, CurPath + exefilename);
for (int i = 0; i < Files.Length; i++)
{
string filename = Files[i];
webclient.DownloadFile(UpdatePath + filename, CurPath + "//"+filename);
}
}
public void RunApplication()
{
if (File.Exists(CurPath + ExeFileName))
{
ProcessStartInfo info = new ProcessStartInfo(CurPath + ExeFileName);
info.WorkingDirectory = CurPath;
Process.Start(info);
}
}
public void Update()
{
bool check = CheckVersion();
if (check == true)
{
UpdateVersion();
SaveXml();
}
RunApplication();
}
}
}
UpdateVer.xml
<?xml version="1.0" encoding="utf-8"?>
<UpdateInfo>
<PreVersion>1.0.0.0</PreVersion>
<UpdatePath>http://localhost/</UpdatePath>
<CurrentPath>C:/Inetpub/wwwroot/FtpSolution/FtpTest/bin/Debug/Update</CurrentPath>
<ExeFile>FtpTest.exe</ExeFile>
<Files>
<File>C1.Common.dll</File>
<File>C1.Win.C1Input.dll</File>
<File>C1.Win.C1List.dll</File>
<File>C1.Win.C1TrueDBGrid.dll</File>
<File>dbconfig.xml</File>
<File>DevComponents.DotNetBar.dll</File>
</Files>
</UpdateInfo>