用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c#代码库

检查是否需要更新

2015-08-25 作者: 写代码举报

[c#]代码库

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.IO;
using System.Xml;
using System.Reflection;

namespace MyDll
{
    public class CheckUpdate
    {
        public string updateXml = "http://192.168.1.105:8067/UpdateList.xml";    //升级配置的XML文件地址
        public string downloadUrl = "";                                                                    //文件下载地址
        public string filePath = "";                                                                             //要检查更新的文件路径
        public string fileName = "";                                                                          //要更新的文件名
        public string newVersion = "";                                                                      //文件新版本号
        public bool isUpdate;                                                                                    //是否更新

        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="filePath"></param>
        /// <param name="fileName"></param>
        public CheckUpdate(string filePath, string fileName)
        {
            this.filePath = filePath;
            this.fileName = fileName;
        }

        /// <summary>
        /// 检查是否要更新
        /// </summary>
        public bool IsUpdate()
        {
            try
            {
                WebClient wc = new WebClient();
                Stream stream = wc.OpenRead(updateXml);         //打开一个可读流,用来下载资源
                XmlDocument xmlDoc = new XmlDocument();     //表示xml文档
                xmlDoc.Load(stream);                                             //从指定的流加载xml文档
                XmlNode nodelist = xmlDoc.SelectSingleNode("Update");
                foreach (XmlNode node in nodelist)
                {
                    if (node.Name == "Soft" && node.Attributes["Name"].Value.ToLower() == fileName.ToLower())
                    {
                        foreach (XmlNode xmlnode in node)
                        {
                            if (xmlnode.Name == "Version")
                            {
                                newVersion = xmlnode.InnerText;
                            }
                            else
                            {
                                downloadUrl = xmlnode.InnerText;
                            }
                        }
                    }
                }
                Version ver = new Version(newVersion);      //新版本号
                Version version = Assembly.LoadFrom(fileName).GetName().Version;
                int comp = version.CompareTo(ver);
                if (comp >= 0)
                {
                    isUpdate = false;
                }
                else
                {
                    isUpdate = true;
                }
                return isUpdate;
            }
            catch (Exception ex)
            {
                throw new Exception("更新出现错误,请确认网络连接无误后重试!");
            }
        }
    }
}



//对应XML文件
<?xml version="1.0" encoding="utf-8" ?>
<Update>
  <Soft Name="LMS.exe">
    <Version>1.0.1.7</Version>
    <DownLoad>http://192.168.1.105:8067/Update/Debug/LMS.exe</DownLoad>
  </Soft>
</Update>


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...