public void DoUpdate()
        {
            AppCast appCast = new AppCast(appcastUrl);

            AppCastItem latestVersion = appCast.GetLatestVersion();

            if (IsUpdateRequired(latestVersion))
                DoUpdate(latestVersion);
        }
        /*
        public void CheckUpdate()
        {
            AppCast appCast = new AppCast(appcastUrl);

            AppCastItem latestVersion = appCast.GetLatestVersion();

            if (IsUpdateRequired(latestVersion))
                DoUpdate(latestVersion);
        }
        */
        public bool IsUpdateRequired()
        {
            AppCast appCast = new AppCast(appcastUrl);

            AppCastItem latestVersion = appCast.GetLatestVersion();

            return IsUpdateRequired(latestVersion);
        }
        public AppCast Retrieve(string appCastUrl, IWebProxy proxy)
        {
            //ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
            //ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

            var webRequest = WebRequest.Create(appCastUrl);

            webRequest.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
            if (proxy != null)
            {
                webRequest.Proxy = proxy;
            }
            var webResponse = webRequest.GetResponse();

            var appCast = new AppCast();

            try
            {
                appCast.BaseUri = webResponse.ResponseUri;
                using (var reader = new StreamReader(webResponse.GetResponseStream()))
                    appCast.RemoteData = reader.ReadToEnd();
            }
            finally
            {
                try {
                    webResponse.Close();
                } catch { /*ignored*/ }
            }
            return(appCast);
        }