コード例 #1
0
        /// <summary>
        /// 下载最新版,初始化连接字符串.
        /// </summary>
        /// <returns></returns>
        public static bool downloadTheLatestVersionAndInitConnStr()
        {
            //=====================================================================
            // Project Name        :    BaseDao
            // Project Description :
            // Class Name          :    Class1
            // File Name           :    Class1
            // Namespace           :    BaseDao
            // Class Version       :    v1.0.0.0
            // Class Description   :
            // CLR                 :    4.0.30319.42000
            // Author              :    董   魁  ([email protected])
            // Addr                :    中国  陕西 咸阳
            // Create Time         :    2019-10-22 14:57:19
            // Modifier:
            // Update Time         :    2019-10-22 14:57:19
            //======================================================================
            // Copyright © DGCZ  2019 . All rights reserved.
            // =====================================================================
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            if (!File.Exists(Application.StartupPath + "\\flexflow.cfg"))
            {
                MessageBox.Show(string.Format(@"文件:{0},未找到!", Application.StartupPath + "\\flexflow.cfg"), "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(false);
            }
            XmlFlexflow.configFilePath = Application.StartupPath + "\\flexflow.cfg";
            string ftpIPADDR = XmlFlexflow.ReadXmlNodeValue("FTP_IPADDR");

            releaseVersion = string.Empty;
            //先测试是否可以ping通
            if (!ConnectByPing.pingTheAddress(ftpIPADDR))
            {
                MessageBox.Show("未能与版本服务器: " + ftpIPADDR + "取得联系!", "提示: ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(false);
            }
            //检查软件版本
            MSG msg = CheckAppVerionByFTP.checkAppVersionAndOutReleaseVersion(ftpIPADDR, out releaseVersion);

            if (!msg.Flag)
            {
                if (!msg.Msg.Contains("更新"))
                {
                    return(false);
                }
                //自动升级。
                //判断是否存在update文件
                if (!Directory.Exists(Application.StartupPath + "\\update"))
                {
                    //给出提示:
                    MessageBox.Show("未发现升级目录: " + Application.StartupPath + "\\update", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return(false);
                }
                //进行升级
                CmdHelper.LaunchBatOrExe(string.Format(@"{0}\update\UpdateProgram.exe", Application.StartupPath), Application.ProductName + " " + releaseVersion);
                //进行升级时,也需要退出,防止覆盖时,提示文件正在使用中。
                return(false);
            }
            return(true);
        }
 /// <summary>
 /// 检查软件目录是否存在
 /// </summary>
 /// <param name="appName"></param>
 /// <returns></returns>
 public static bool ifExistsTheDirOfSoftware(string appName)
 {
     if (!ifExistsBatFileOfConnShare())
     {
         return(false);
     }
     //1.建立连接
     //建立连接
     CmdHelper.LaunchBatOrExe(string.Format(@"{0}\update\connShare.bat", Application.StartupPath));
     if (!Directory.Exists(string.Format(@"S:\{0}", appName)))
     {
         MessageBox.Show(string.Format(@"软件{0}: 在共享目录上尚未发布!", appName), "提示: ", MessageBoxButtons.OK, MessageBoxIcon.Information);
         //断开连接
         CmdHelper.LaunchBatOrExe(string.Format(@"{0}\update\deleteShare.bat", Application.StartupPath));
         return(false);
     }
     return(true);
 }
        /// <summary>
        /// 检查程序版本号。
        /// </summary>
        /// <param name="softwareName"></param>
        /// <param name="version"></param>
        /// <returns></returns>
        public static bool checkSoftVersion(string softwareName, string currVersion)
        {
            if (!ifExistsBatFileOfConnShare())
            {
                return(false);
            }
            //1.建立连接
            //建立连接
            CmdHelper.LaunchBatOrExe(string.Format(@"{0}\update\connShare.bat", Application.StartupPath));
            string resultStr = FileHelper.readFile(string.Format(@"S:\version.txt"));

            string[] strArray       = { "\r\n" };
            string[] resultStrArray = resultStr.Split(strArray, StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < resultStrArray.Length; i++)
            {
                //再次分解
                string   tempStr          = resultStrArray[i].ToString();
                string[] versionInfoArray = tempStr.Split(':');
                if (!softwareName.Equals(versionInfoArray[0].Trim()))
                {
                    continue;
                }
                //检查版本号
                string releaseVersion = versionInfoArray[1].Trim();
                if (!currVersion.Equals(releaseVersion))
                {
                    MessageBox.Show(string.Format(@"当前版本{0} 与发布的版本{1} 不一致,需更新!", currVersion, releaseVersion), "提示: ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return(false);
                }
                else
                {
                    //版本信息一致
                    return(true);
                }
            }
            //未找到
            MessageBox.Show(string.Format(@"此程序名{0}:未在version.txt中注册!", softwareName), "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            return(false);
        }