public async void Check(bool notifyNoFound, bool isPreRelease) { try { var updater = new GitHubRelease(Owner, Repo); var url = updater.AllReleaseUrl; var json = await GetAsync(url, true); var releases = JsonConvert.DeserializeObject <List <Release> >(json); var latestRelease = VersionUtil.GetLatestRelease(releases, isPreRelease); if (VersionUtil.CompareVersion(latestRelease.tag_name, Version) > 0) { LatestVersionNumber = latestRelease.tag_name; LatestVersionUrl = latestRelease.html_url; NewVersionFound?.Invoke(this, new EventArgs()); } else { LatestVersionNumber = latestRelease.tag_name; if (notifyNoFound) { NewVersionNotFound?.Invoke(this, new EventArgs()); } } } catch (Exception e) { Debug.WriteLine(e.Message); if (notifyNoFound) { NewVersionFoundFailed?.Invoke(this, new EventArgs()); } } }
public void TestCompareVersion() { Assert.IsTrue(VersionUtil.CompareVersion(@"2.3.1.0", @"2.3.1") > 0); // wtf??? Be aware that Assert.IsTrue(VersionUtil.CompareVersion(@"2.0.0.0", @"2.3.1") < 0); Assert.IsTrue(VersionUtil.CompareVersion(@"1.3.1.0", @"2.3.1") < 0); Assert.IsTrue(VersionUtil.CompareVersion(@"2.3.1.0", @"1.3.1") > 0); Assert.IsTrue(VersionUtil.CompareVersion(@"1.2", @"1.3") < 0); Assert.IsTrue(VersionUtil.CompareVersion(@"1.3", @"1.2") > 0); Assert.IsTrue(VersionUtil.CompareVersion(@"1.3", @"1.3") == 0); Assert.IsTrue(VersionUtil.CompareVersion(@"1.2.1", @"1.2") > 0); Assert.IsTrue(VersionUtil.CompareVersion(@"2.3.1", @"2.4") < 0); Assert.IsTrue(VersionUtil.CompareVersion(@"1.3.2", @"1.3.1") > 0); }
public async void Check(bool isPreRelease) { try { var updater = new GitHubRelease(Owner, Repo); var url = updater.AllReleaseUrl; var json = await WebUtil.DownloadStringAsync(WebUtil.CreateRequest(url)); var releases = JsonConvert.DeserializeObject <List <Release> >(json); var latestRelease = VersionUtil.GetLatestRelease(releases, isPreRelease); LatestVersionNumber = latestRelease.tag_name; LatestVersionUrl = latestRelease.html_url; LatestVersionDownloadUrl = latestRelease.assets[0].browser_download_url; Logging.Info($"Github 最新发布版本: {latestRelease.tag_name}"); if (VersionUtil.CompareVersion(latestRelease.tag_name, Version) > 0) { Logging.Info($"发现新版本"); NewVersionFound?.Invoke(this, new EventArgs()); } else { Logging.Info("目前是最新版本"); NewVersionNotFound?.Invoke(this, new EventArgs()); } } catch (Exception e) { if (e is WebException) { Logging.Warning($"获取新版本失败: {e.Message}"); } else { Logging.Warning(e.ToString()); } NewVersionFoundFailed?.Invoke(this, new EventArgs()); } }