Ejemplo n.º 1
0
        /// <summary>
        /// Downloads update package and installs it
        /// </summary>
        /// <param name="updateInfo"></param>
        public void DownloadUpdateAndInstall(UpdateInformationType updateInfo)
        {
            string updatePhisycalFile = GetUpdateLocalFileName(updateInfo.DownloadUrl);

            if (File.Exists(updatePhisycalFile))
                File.Delete(updatePhisycalFile);

            GetDataFile(updateInfo.DownloadUrl, updatePhisycalFile);

            Install(updatePhisycalFile);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Check update package information for existing update
 /// </summary>
 /// <returns>Returns if package contains update data</returns>
 public bool CanUpdate(out UpdateInformationType updateInfo)
 {
     byte[] bytes = GetDataBytes(_AutoUpdateInfoUrl);
     updateInfo = GetUpdateInfoFromXmlBytes(bytes);
     try
     {
         double current = Convert.ToDouble(_CurrentVersion);
         double update = Convert.ToDouble(updateInfo.UpdateVersion);
         return update > current;
     }
     catch
     {
         return (updateInfo.UpdateVersion.CompareTo(_CurrentVersion) > 0);
     }
 }
Ejemplo n.º 3
0
        private UpdateInformationType GetUpdateInfoFromXmlBytes(byte[] xmlBytes)
        {
            UpdateInformationType result = new UpdateInformationType();
            string docContent = Encoding.UTF8.GetString(xmlBytes);

            XmlDocument doc = new XmlDocument();
            try
            {
                doc.LoadXml(docContent);
                XmlNode node;
                XmlNode rootNode = doc.SelectSingleNode("root");

                node = rootNode.SelectSingleNode("UpdateVersion");
                result.UpdateVersion = node.InnerText;

                node = rootNode.SelectSingleNode("DownloadUrl");
                result.DownloadUrl = node.InnerText;
            }
            catch { }
            return result;
        }