亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C#實現在線更新系統

2019-11-14 14:00:57
字體:
來源:轉載
供稿:網友

先來看一下程序完成后長什么樣。

image

這個是程序的組成部分。

image

 

主要功能是在InitializationUpdate這個類中完成的,From1主要起到調用的作用,所以重心還是在InitializationUpdate這個類上,下面我們來看一下這個類完成了什么工作,都是如何完成的。

先調用兩個類:

        //使用WebClient下載
       
public WebClient client = new WebClient();

待會兒下載更新文件要用到

 

還有幾個全局變量

        //當前版本
        public string localversion = null;
        //最新版本
        public string latesversion = null;
        //主窗體
        public Form1 form;
        //通知內容
        public string nnidtext = null;

 

        //獲取本地版本號
        public void NowVersion()
        {
            System.Diagnostics.FileVersionInfo fv = System.Diagnostics.FileVersionInfo.GetVersionInfo("新云翻譯器.exe");
            localversion = fv.FileVersion;

        }

這個方法幫我們拿到目前軟件的版本,因為我們要拿到的版本號是我們要更新的軟件的版本號,而不是本軟件的版本號,這里需要注意下,別搞錯了。

 

        /// <summary>
        /// 從服務器上獲取最新的版本號
        /// </summary>
        public void DownloadCheckUpdatexml()
        {
            try
            {
                //第一個參數是文件的地址,第二個參數是文件保存的路徑文件名
                client.DownloadFile(
http://cloudyours.net/Software//Update/NewcloudTranslator/NewcloudTranslator221210.XML, @"Update/NewcloudTranslator221210.XML");
            }
            catch
            {
                nnidtext = "沒有檢測到更新";
                Environment.Exit(0);
            }
        }

我們用這個方法從服務器上拿到最新的軟件版本,之后會進行對比。

 

        /// <summary>
        /// 讀取從服務器獲取的最新版本號
        /// </summary>
        public void LatestVersion()
        {
            if (File.Exists(@"Update/NewcloudTranslator221210.XML"))
            {
                XmlDocument doc = new XmlDocument();
                //加載要讀取的XML
                doc.Load(@"Update/NewcloudTranslator221210.XML");

                //獲得根節點
                XmlElement WriteBook = doc.DocumentElement;

                //獲得子節點 返回節點的集合
                XmlNodeList Update = WriteBook.ChildNodes;

                foreach (XmlNode item in Update)
                {
                    latesversion = item.InnerText;
                }
            }
            else if (!File.Exists(@"Update/NewcloudTranslator221210.XML"))
            {
                nnidtext = "檢查更新失敗";
                Environment.Exit(0);
            }
        }

 

這個方法就是用來讀取我們拿到的文檔,然后存儲一下,后面會用到。

 

        /// <summary>
        /// 下載安裝包
        /// </summary>
        public void DownloadInstall()
        {
            if (localversion == latesversion)
            {
                nnidtext = "恭喜你,已經更新到最新版本";
            }
            else if (localversion != latesversion && File.Exists(@"Update/NewcloudTranslator221210.XML"))
            {
                nnidtext = "發現新版本,即將下載更新補丁";
                client.DownloadFile("
http://cloudtours.net/Software//Update/NewcloudTranslator/NewCloudTranslator2_2_1_210_Setup.exe", @"Update/NewCloudTranslator2_2_1_210_Setup.exe");
                if (File.Exists(@"Update/NewCloudTranslator2_2_1_210_Setup.exe"))
                {
                    InstallandDelete();//這里調用安裝的類
                }
                else if (!File.Exists(@"Update/NewCloudTranslator2_2_1_210_Setup.exe"))
                {
                    //如果一次沒有下載成功,則檢查三次
                    for (int i = 1; i < 3; i++)
                    {
                        client.DownloadFile("
http://cloudtours.net/Software//Update/NewcloudTranslator/NewCloudTranslator2_2_1_210_Setup.exe", @"Update/NewCloudTranslator2_2_1_210_Setup.exe");
                    }
                    nnidtext = "下載失敗,請檢查您的網絡連接是否正常";
                    Environment.Exit(0);
                }
            }
        }

 

這個方法是用來下載安裝包的,先對比一下我們讀取到的最新版本號和本地版本號,如果一樣就不用下載安裝包,如果不一樣就下載更新。

 

        /// <summary>
        /// 安裝及刪除
        /// </summary>
        PRivate void InstallandDelete()
        {
            //安裝前關閉正在運行的程序
            KillProgram();
            //啟動安裝程序
            Process.Start(@"Update/NewCloudTranslator2_2_1_210_Setup.exe");
            JudgeInstall();
        }

 這個方法就簡單了,就打開一下我們的安裝包,之后調用幾個其他方法,其他方法會在下面附上。

 

/// <summary>
/// 判斷安裝進程是否???在
/// </summary>
public void JudgeInstall()
{
    Process[] processList = Process.GetProcesses();
    foreach (Process process in processList)
    {
        if (process.ProcessName == "NewCloudTranslator2_2_1_210_Setup.exe")
        {
            process.Kill();
            File.Delete(@"Update/NewCloudTranslator2_2_1_210_Setup.exe");
            File.Delete(@"Update/NewcloudTranslator221210.XML");
        }
        else
        {
            File.Delete(@"Update/NewCloudTranslator2_2_1_210_Setup.exe");
            File.Delete(@"Update/NewcloudTranslator221210.XML");
            return;
        }
    }
}

這個方法就完成了簡單的刪除更新文件的。

 

/// <summary>
/// 結束程序
/// </summary>
public void KillProgram()
{
    Process[] processList = Process.GetProcesses();
    foreach (Process process in processList)
    {
        //如果程序啟動了,則殺死
        if (process.ProcessName == "新云翻譯器.exe")
        {
            process.Kill();
        }
    }
}

有幾個方法中用到了這個方法,并沒有什么技術含量。

 

到這里就結束了,這個程序就算做完了,其實蠻簡單的,就看你沒有想到這點。

 

注:轉載請注明出處:http://www.49028c.com/skylgmg/p/4792990.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产欧美日韩精品| 91av在线影院| 最新国产成人av网站网址麻豆| 久热精品视频在线免费观看| 成人免费午夜电影| 国产高清视频一区三区| 亚洲天堂男人天堂女人天堂| 久久久久亚洲精品国产| 久久九九亚洲综合| 国产亚洲精品高潮| 97在线视频国产| 中文一区二区视频| 国产一区二区三区视频免费| 欧美大肥婆大肥bbbbb| 91精品一区二区| 亚洲男人天堂2023| 亚洲国产精品成人一区二区| 91精品国产乱码久久久久久蜜臀| 国产精品www色诱视频| 日韩高清a**址| 色无极亚洲影院| 国产精品久久久91| 91精品久久久久久综合乱菊| 中文国产亚洲喷潮| 亚洲一级黄色av| 久久福利网址导航| 久久亚洲春色中文字幕| 欧美成人中文字幕在线| 黑人极品videos精品欧美裸| 日韩电影中文 亚洲精品乱码| 夜夜躁日日躁狠狠久久88av| 欧美性生交大片免网| 性色av一区二区三区在线观看| 久久国产精品久久久久久| 日韩毛片在线看| 久99九色视频在线观看| 国产成人久久久精品一区| 亚洲男女性事视频| 久久手机精品视频| 午夜精品久久久久久久男人的天堂| 亚洲欧美在线一区二区| 97视频免费在线看| 日本aⅴ大伊香蕉精品视频| 欧美亚洲另类制服自拍| 欧美性猛交xxxx乱大交3| 久久艹在线视频| 色婷婷亚洲mv天堂mv在影片| 国产精品96久久久久久又黄又硬| 亚洲男人av电影| 精品亚洲va在线va天堂资源站| 国产做受69高潮| 精品呦交小u女在线| 国产精品激情av在线播放| 久久久久久久久久久国产| 国产精品户外野外| 97精品国产97久久久久久春色| 久久偷看各类女兵18女厕嘘嘘| 91精品久久久久久久久久入口| 欧美高清无遮挡| 久久久av一区| 2019国产精品自在线拍国产不卡| 日韩在线精品一区| 亚洲xxx自由成熟| 欧洲日韩成人av| 国产精品日韩在线一区| 国产成人精品一区二区在线| 亚洲电影中文字幕| 日韩免费观看网站| 亚洲性日韩精品一区二区| 欧美日韩国产精品| 2020久久国产精品| 国产视频综合在线| 国产精品天天狠天天看| 国语自产在线不卡| 亚洲一区二区自拍| 亚洲97在线观看| 日韩av在线免费观看一区| 久久久日本电影| 在线观看日韩专区| 91香蕉电影院| 国产欧美日韩综合精品| 久久天天躁狠狠躁夜夜爽蜜月| 欧美日韩福利电影| 亚洲精品久久久久久久久久久| 精品美女国产在线| 国产日产欧美a一级在线| 欧美激情一区二区三区在线视频观看| 少妇高潮久久久久久潘金莲| 在线播放日韩欧美| 亚洲小视频在线| 91po在线观看91精品国产性色| 亚洲福利视频专区| 成人黄色大片在线免费观看| 久久久久久久97| 国产成人精品免高潮在线观看| 精品久久久久久久久久久久久| 国产三级精品网站| 久久久久久成人精品| 国产香蕉精品视频一区二区三区| 色中色综合影院手机版在线观看| 91色p视频在线| 91国产高清在线| 亚洲精品免费在线视频| 91视频国产一区| 国产精品无av码在线观看| 亚洲一区二区三区毛片| 成人黄色在线免费| 久久精品中文字幕电影| 欧美日韩一区二区精品| 91沈先生在线观看| 理论片在线不卡免费观看| 中文字幕在线看视频国产欧美| 亚洲国产成人精品一区二区| 欧美激情女人20p| 国产一区欧美二区三区| 亚洲天堂成人在线| 亚洲天堂av在线播放| 日日狠狠久久偷偷四色综合免费| 在线播放日韩专区| 日韩经典第一页| 亚洲欧美第一页| 欧美日韩激情视频| 一区二区三区动漫| 国产精品狼人色视频一区| 欧美日韩午夜剧场| 国产美女主播一区| 亚洲欧美日韩图片| 懂色av影视一区二区三区| 不卡在线观看电视剧完整版| 亚洲**2019国产| 欧美黄色三级网站| 国产在线98福利播放视频| 亚洲jizzjizz日本少妇| 欧美国产第一页| 欧美电影电视剧在线观看| 在线日韩第一页| 中文字幕av一区二区三区谷原希美| 久久久噜噜噜久噜久久| 欧美怡春院一区二区三区| 欧美日韩亚洲一区二区三区| 国产一区二区三区在线看| 亚洲韩国青草视频| 亚洲美女在线视频| 国产一区二区三区日韩欧美| 欧美一级高清免费播放| 91久久精品久久国产性色也91| 欧美日韩激情视频8区| 精品美女永久免费视频| 欧美www在线| 久久免费视频在线观看| 久久午夜a级毛片| 国产精品激情av在线播放| 亚洲丝袜在线视频| 97精品在线视频| 亚洲成人黄色在线观看| 日韩毛片在线看| 欧美老女人bb| 92看片淫黄大片看国产片| 成人欧美在线观看| 亚洲最新在线视频| 亚洲天堂一区二区三区| 这里只有精品视频在线| 国产欧美欧洲在线观看| 大桥未久av一区二区三区|