通过某些手段后台更新软件。首先你要有一个放置新版本信息的网站
UpdateSoftwareForm.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CCWin;
using System.Net;
using System.Collections;
using System.IO;
using System.Xml;
using System.Diagnostics;
using System.Threading;
namespace WriteBook
{
public partial class UpdateSoftwareForm : Skin_Metro
{
public UpdateSoftwareForm()
{
InitializeComponent();
}
#region 一些对象和变量
//使用WebClient下载
WebClient client = new WebClient();
ArrayList downlist = new ArrayList();
//当前版本
string nowversion = null;
//最新版本
string latesversion = null;
#endregion
#region 获取版本号
/// <summary>
/// 从服务器上获取最新的版本号
/// </summary>
public void DownloadCheckUpdateXml()
{
try
{
//第一个参数是文件的地址,第二个参数是文件保存的路径文件名
client.DownloadFile(\"http://bbs.cloudtour.tk/SoftwareDownload/WriteBook/WriteBook2.xml\", \"WriteBook2.xml\");
}
catch
{
MessageBox.Show(\"没有检测到更新。\", \"提示\");
this.Close();
}
}
/// <summary>
/// 获取本地软件的版本号
/// </summary>
private void NowVersion()
{
nowversion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString() + \"\\n\";
LocalText.Text = nowversion;
}
/// <summary>
/// 读取从服务器获取的最新版本号
/// </summary>
public void LatestVersion()
{
try
{
if (File.Exists(\"WriteBook2.xml.xml\"))
{
XmlDocument doc = new XmlDocument();
//加载要读取的XML
doc.Load(\"WriteBook2.xml.xml\");
//获得根节点
XmlElement WriteBook = doc.DocumentElement;
//获得子节点 返回节点的集合
XmlNodeList Update = WriteBook.ChildNodes;
foreach (XmlNode item in Update)
{
latesversion = item.InnerText;
}
LatestText.Text = latesversion;
}
else
{
MessageBox.Show(\"没有检测到更新。\", \"提示\");
this.Close();
}
}
catch
{
this.Close();
}
}
#endregion
#region 初始化程序
/// <summary>
/// 初始化程序
/// </summary>
private void InitializeandInstall()
{
UpdateProgressBar.Value = 20;
DownloadCheckUpdateXml();
UpdateProgressBar.Value = 40;
NowVersion();
UpdateProgressBar.Value = 60;
LatestVersion();
UpdateProgressBar.Value = 80;
DownloadInstall();
UpdateProgressBar.Value = 100;
}
#endregion
#region 安装and删除
/// <summary>
/// 下载安装包
/// </summary>
public void DownloadInstall()
{
try
{
if (nowversion == latesversion)
{
MessageBox.Show(\"您已经是最新版本。\", \"提示\");
}
else if (nowversion != latesversion && File.Exists(\"WriteBook2.xml\"))
{
MessageBox.Show(\"发现新版本,即将下载更新补丁。\", \"提示\", MessageBoxButtons.OK, MessageBoxIcon.Information);
client.DownloadFile(\"http://bbs.cloudtour.tk/SoftwareDownload/WriteBook/WBsetup.exe\", \"WBsetup.exe\");
if (File.Exists(\"Setup.exe\"))
{
InstallandDelete();
}
else
{
for (int i = 1; i < 3; i++)
{
client.DownloadFile(\"http://bbs.cloudtour.tk/SoftwareDownload/WriteBook/WBsetup.exe\", \"WBsetup.exe\");
}
MessageBox.Show(\"下载失败,请检查您的网络连接是否正常。\", \"提示\");
this.Close();
}
}
}
catch
{
MessageBox.Show(\"更新失败,没有发现新版本。\", \"提示\");
this.Close();
}
}
/// <summary>
/// 安装及删除
/// </summary>
private void InstallandDelete()
{
try
{
DialogResult dr = MessageBox.Show(\"下载更新成功,是否安装新更新?\", \"提示\", MessageBoxButtons.YesNoCancel);
if (dr == System.Windows.Forms.DialogResult.Yes)
{
//启动安装程序
System.Diagnostics.Process.Start(\"WBsetup.exe\");
Thread td = new Thread(JudgeInstall);
td.Start();
}
else { }
}
catch
{
MessageBox.Show(\"发生未知错误,更新失败。\", \"提示\");
this.Close();
}
}
/// <summary>
/// 判断安装进程是否存在
/// </summary>
public void JudgeInstall()
{
while (true)
{
Process[] processList = Process.GetProcesses();
foreach (Process process in processList)
{
if (process.ProcessName == \"WBsetup.exe\") { }
else
{
DialogResult dr = MessageBox.Show(\"更新成功,是否删除安装包?\", \"提示\", MessageBoxButtons.YesNo);
if (dr == System.Windows.Forms.DialogResult.Yes)
{
File.Delete(\"WBsetup.exe\");
File.Delete(\"WriteBook2.xml\");
}
}
}
}
}
#endregion
/// <summary>
/// 点击初始化程序
/// </summary>
/// <param name=\"sender\"></param>
/// <param name=\"e\"></param>
private void UpdateButton_Click(object sender, EventArgs e)
{
InitializeandInstall();
}
}
}
以上所述就是本文的全部内容了,希望大家能够喜欢。
本文地址:https://www.stayed.cn/item/19146
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我