public static void CheckForNewVersion() { #if DEBUG return; #endif var lastNewVersionCheck = Settings.GetDateTime(Setting.LastNewVersionCheck); if (!lastNewVersionCheck.HasValue) { Settings.Set(Setting.LastNewVersionCheck, DateTime.UtcNow); return; } if ((DateTime.UtcNow - lastNewVersionCheck.Value).TotalDays < 7) { //only check once a week return; } try { var cultureInfoName = CultureInfo.CurrentUICulture.Name; var url = string.Format("http://marketplaceedgeservice.windowsphone.com/v8/catalog/apps/{0}?os={1}&cc={2}&oc=&lang={3}", AppMetadata.Current.AppId.ToString("D"), Environment.OSVersion.Version, cultureInfoName.Substring(cultureInfoName.Length - 2).ToUpperInvariant(), cultureInfoName); var request = WebRequest.Create(url); request.BeginGetResponse(result => { try { var response = (HttpWebResponse)request.EndGetResponse(result); if (response.StatusCode == HttpStatusCode.OK) { using (var outputStream = response.GetResponseStream()) { using (var reader = XmlReader.Create(outputStream)) { reader.MoveToContent(); var aNamespace = reader.LookupNamespace("a"); reader.ReadToFollowing("entry", aNamespace); reader.ReadToDescendant("version"); var updatedVersion = new Version(reader.ReadElementContentAsString()); var currentVersion = new Version(AppMetadata.Current.Version); Settings.Set(Setting.LastNewVersionCheck, DateTime.UtcNow); if (updatedVersion > currentVersion) { AppMetadata.RootFrame.Dispatcher.BeginInvoke(() => { if (Extensions.ShowMessageBox("Update Available", "A new version of " + AppMetadata.Current.Name + " is available. Do you want to install it now?", "Install Update", "Maybe later")) { ErrorReporting.Log("MarketplaceDetailTaskShow from Prompt"); new MarketplaceDetailTask().Show(); } }); } } } } } catch { } }, null); } catch { } }