diff --git a/CHANGELOG.md b/CHANGELOG.md index 23957a4..cb15c5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,21 @@ All notable changes to this project will be documented in this file.
+## [1.5.1.0] - 2023-03-27 + +### Changed + +- Downgraded `Ookii.Dialogs.WinForms` binaries from `4.0.0` to `1.2.0` due to incompatibilities with certain systems and configurations +- Switched `System.Text.Json` to `Newtonsoft.Json` due to incompatibilities with certain systems and configurations +- Tweaked `GetEarlyAccessGitHubRepoJsonData()` within `EarlyAccessYuzuManager.cs` to remove the `MemoryStream` dependency +- Tweaked `GetMainlineGitHubRepoJsonData()` within `MainlineYuzuManager.cs` to remove the `MemoryStream` dependency + +### Fixed + +- [Issue #15](https://github.com/amakvana/EzYuzu/issues/15) - Can't load 'System.Runtime.CompilerServices.Unsafe' + +
+ ## [1.5.0.0] - 2023-03-26 ### Added @@ -12,7 +27,7 @@ All notable changes to this project will be documented in this file. - Mainline remains default for `New Install`, unless overridden. - Ability to switch Update Channels for current installations. - `Options` > `General` > `Update Channel` > `Override Update Channel` -- EzYuzu will automatically detect which Update Channel the seelcted copy of Yuzu is on. +- EzYuzu will automatically detect which Update Channel the selected copy of Yuzu is on. ### Changed diff --git a/images/ezyuzu-setup.gif b/images/ezyuzu-setup.gif index 3df266a..971c74b 100644 Binary files a/images/ezyuzu-setup.gif and b/images/ezyuzu-setup.gif differ diff --git a/source/EzYuzu/App.config b/source/EzYuzu/App.config index 3a7053f..d06a655 100644 --- a/source/EzYuzu/App.config +++ b/source/EzYuzu/App.config @@ -16,16 +16,4 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/source/EzYuzu/Classes/EarlyAccessYuzuManager.cs b/source/EzYuzu/Classes/EarlyAccessYuzuManager.cs index 572da41..c2ae703 100644 --- a/source/EzYuzu/Classes/EarlyAccessYuzuManager.cs +++ b/source/EzYuzu/Classes/EarlyAccessYuzuManager.cs @@ -1,9 +1,8 @@ -using System; +using Newtonsoft.Json; +using System; using System.Diagnostics; using System.IO; using System.Net; -using System.Text; -using System.Text.Json; using System.Threading.Tasks; namespace EzYuzu @@ -87,8 +86,7 @@ private async Task GetEarlyAccessGitHubRepoJsonData() using var client = new WebClient(); client.Headers.Add("User-Agent", "request"); string json = await client.DownloadStringTaskAsync(new Uri(EarlyAccessYuzuRepoJsonUrl)); - using var stream = new MemoryStream(Encoding.Default.GetBytes(json)); - return await JsonSerializer.DeserializeAsync(stream).ConfigureAwait(false); + return JsonConvert.DeserializeObject(json); } } } diff --git a/source/EzYuzu/Classes/GitHubRepo.cs b/source/EzYuzu/Classes/GitHubRepo.cs index 2eb453b..af0eaf7 100644 --- a/source/EzYuzu/Classes/GitHubRepo.cs +++ b/source/EzYuzu/Classes/GitHubRepo.cs @@ -1,256 +1,256 @@ -using System; +using Newtonsoft.Json; +using System; using System.Collections.Generic; -using System.Text.Json.Serialization; namespace EzYuzu { - // Repo myDeserializedClass = await JsonSerializer.DeserializeAsync(myJsonResponse); + // Repo myDeserializedClass = JsonConvert.DeserializeObject(jsonString); public sealed class Asset { - [JsonPropertyName("url")] + [JsonProperty("url")] public string Url { get; set; } - [JsonPropertyName("id")] + [JsonProperty("id")] public int? Id { get; set; } - [JsonPropertyName("node_id")] + [JsonProperty("node_id")] public string NodeId { get; set; } - [JsonPropertyName("name")] + [JsonProperty("name")] public string Name { get; set; } - [JsonPropertyName("label")] + [JsonProperty("label")] public string Label { get; set; } - [JsonPropertyName("uploader")] + [JsonProperty("uploader")] public Uploader Uploader { get; set; } - [JsonPropertyName("content_type")] + [JsonProperty("content_type")] public string ContentType { get; set; } - [JsonPropertyName("state")] + [JsonProperty("state")] public string State { get; set; } - [JsonPropertyName("size")] + [JsonProperty("size")] public int? Size { get; set; } - [JsonPropertyName("download_count")] + [JsonProperty("download_count")] public int? DownloadCount { get; set; } - [JsonPropertyName("created_at")] + [JsonProperty("created_at")] public DateTime? CreatedAt { get; set; } - [JsonPropertyName("updated_at")] + [JsonProperty("updated_at")] public DateTime? UpdatedAt { get; set; } - [JsonPropertyName("browser_download_url")] + [JsonProperty("browser_download_url")] public string BrowserDownloadUrl { get; set; } } public sealed class Author { - [JsonPropertyName("login")] + [JsonProperty("login")] public string Login { get; set; } - [JsonPropertyName("id")] + [JsonProperty("id")] public int? Id { get; set; } - [JsonPropertyName("node_id")] + [JsonProperty("node_id")] public string NodeId { get; set; } - [JsonPropertyName("avatar_url")] + [JsonProperty("avatar_url")] public string AvatarUrl { get; set; } - [JsonPropertyName("gravatar_id")] + [JsonProperty("gravatar_id")] public string GravatarId { get; set; } - [JsonPropertyName("url")] + [JsonProperty("url")] public string Url { get; set; } - [JsonPropertyName("html_url")] + [JsonProperty("html_url")] public string HtmlUrl { get; set; } - [JsonPropertyName("followers_url")] + [JsonProperty("followers_url")] public string FollowersUrl { get; set; } - [JsonPropertyName("following_url")] + [JsonProperty("following_url")] public string FollowingUrl { get; set; } - [JsonPropertyName("gists_url")] + [JsonProperty("gists_url")] public string GistsUrl { get; set; } - [JsonPropertyName("starred_url")] + [JsonProperty("starred_url")] public string StarredUrl { get; set; } - [JsonPropertyName("subscriptions_url")] + [JsonProperty("subscriptions_url")] public string SubscriptionsUrl { get; set; } - [JsonPropertyName("organizations_url")] + [JsonProperty("organizations_url")] public string OrganizationsUrl { get; set; } - [JsonPropertyName("repos_url")] + [JsonProperty("repos_url")] public string ReposUrl { get; set; } - [JsonPropertyName("events_url")] + [JsonProperty("events_url")] public string EventsUrl { get; set; } - [JsonPropertyName("received_events_url")] + [JsonProperty("received_events_url")] public string ReceivedEventsUrl { get; set; } - [JsonPropertyName("type")] + [JsonProperty("type")] public string Type { get; set; } - [JsonPropertyName("site_admin")] + [JsonProperty("site_admin")] public bool? SiteAdmin { get; set; } } public sealed class Reactions { - [JsonPropertyName("url")] + [JsonProperty("url")] public string Url { get; set; } - [JsonPropertyName("total_count")] + [JsonProperty("total_count")] public int? TotalCount { get; set; } - [JsonPropertyName("+1")] + [JsonProperty("+1")] public int? Plus1 { get; set; } - [JsonPropertyName("-1")] + [JsonProperty("-1")] public int? Minus1 { get; set; } - [JsonPropertyName("laugh")] + [JsonProperty("laugh")] public int? Laugh { get; set; } - [JsonPropertyName("hooray")] + [JsonProperty("hooray")] public int? Hooray { get; set; } - [JsonPropertyName("confused")] + [JsonProperty("confused")] public int? Confused { get; set; } - [JsonPropertyName("heart")] + [JsonProperty("heart")] public int? Heart { get; set; } - [JsonPropertyName("rocket")] + [JsonProperty("rocket")] public int? Rocket { get; set; } - [JsonPropertyName("eyes")] + [JsonProperty("eyes")] public int? Eyes { get; set; } } public sealed class Repo { - [JsonPropertyName("url")] + [JsonProperty("url")] public string Url { get; set; } - [JsonPropertyName("assets_url")] + [JsonProperty("assets_url")] public string AssetsUrl { get; set; } - [JsonPropertyName("upload_url")] + [JsonProperty("upload_url")] public string UploadUrl { get; set; } - [JsonPropertyName("html_url")] + [JsonProperty("html_url")] public string HtmlUrl { get; set; } - [JsonPropertyName("id")] + [JsonProperty("id")] public int? Id { get; set; } - [JsonPropertyName("author")] + [JsonProperty("author")] public Author Author { get; set; } - [JsonPropertyName("node_id")] + [JsonProperty("node_id")] public string NodeId { get; set; } - [JsonPropertyName("tag_name")] + [JsonProperty("tag_name")] public string TagName { get; set; } - [JsonPropertyName("target_commitish")] + [JsonProperty("target_commitish")] public string TargetCommitish { get; set; } - [JsonPropertyName("name")] + [JsonProperty("name")] public string Name { get; set; } - [JsonPropertyName("draft")] + [JsonProperty("draft")] public bool? Draft { get; set; } - [JsonPropertyName("prerelease")] + [JsonProperty("prerelease")] public bool? Prerelease { get; set; } - [JsonPropertyName("created_at")] + [JsonProperty("created_at")] public DateTime? CreatedAt { get; set; } - [JsonPropertyName("published_at")] + [JsonProperty("published_at")] public DateTime? PublishedAt { get; set; } - [JsonPropertyName("assets")] + [JsonProperty("assets")] public List Assets { get; set; } - [JsonPropertyName("tarball_url")] + [JsonProperty("tarball_url")] public string TarballUrl { get; set; } - [JsonPropertyName("zipball_url")] + [JsonProperty("zipball_url")] public string ZipballUrl { get; set; } - [JsonPropertyName("body")] + [JsonProperty("body")] public string Body { get; set; } - [JsonPropertyName("reactions")] + [JsonProperty("reactions")] public Reactions Reactions { get; set; } } public sealed class Uploader { - [JsonPropertyName("login")] + [JsonProperty("login")] public string Login { get; set; } - [JsonPropertyName("id")] + [JsonProperty("id")] public int? Id { get; set; } - [JsonPropertyName("node_id")] + [JsonProperty("node_id")] public string NodeId { get; set; } - [JsonPropertyName("avatar_url")] + [JsonProperty("avatar_url")] public string AvatarUrl { get; set; } - [JsonPropertyName("gravatar_id")] + [JsonProperty("gravatar_id")] public string GravatarId { get; set; } - [JsonPropertyName("url")] + [JsonProperty("url")] public string Url { get; set; } - [JsonPropertyName("html_url")] + [JsonProperty("html_url")] public string HtmlUrl { get; set; } - [JsonPropertyName("followers_url")] + [JsonProperty("followers_url")] public string FollowersUrl { get; set; } - [JsonPropertyName("following_url")] + [JsonProperty("following_url")] public string FollowingUrl { get; set; } - [JsonPropertyName("gists_url")] + [JsonProperty("gists_url")] public string GistsUrl { get; set; } - [JsonPropertyName("starred_url")] + [JsonProperty("starred_url")] public string StarredUrl { get; set; } - [JsonPropertyName("subscriptions_url")] + [JsonProperty("subscriptions_url")] public string SubscriptionsUrl { get; set; } - [JsonPropertyName("organizations_url")] + [JsonProperty("organizations_url")] public string OrganizationsUrl { get; set; } - [JsonPropertyName("repos_url")] + [JsonProperty("repos_url")] public string ReposUrl { get; set; } - [JsonPropertyName("events_url")] + [JsonProperty("events_url")] public string EventsUrl { get; set; } - [JsonPropertyName("received_events_url")] + [JsonProperty("received_events_url")] public string ReceivedEventsUrl { get; set; } - [JsonPropertyName("type")] + [JsonProperty("type")] public string Type { get; set; } - [JsonPropertyName("site_admin")] + [JsonProperty("site_admin")] public bool? SiteAdmin { get; set; } } } diff --git a/source/EzYuzu/Classes/MainlineYuzuManager.cs b/source/EzYuzu/Classes/MainlineYuzuManager.cs index 8e4de4a..69075b3 100644 --- a/source/EzYuzu/Classes/MainlineYuzuManager.cs +++ b/source/EzYuzu/Classes/MainlineYuzuManager.cs @@ -1,9 +1,8 @@ -using System; +using Newtonsoft.Json; +using System; using System.Diagnostics; using System.IO; using System.Net; -using System.Text; -using System.Text.Json; using System.Threading.Tasks; namespace EzYuzu @@ -87,8 +86,7 @@ private async Task GetMainlineGitHubRepoJsonData() using var client = new WebClient(); client.Headers.Add("User-Agent", "request"); string json = await client.DownloadStringTaskAsync(new Uri(MainlineYuzuRepoJsonUrl)); - using var stream = new MemoryStream(Encoding.Default.GetBytes(json)); - return await JsonSerializer.DeserializeAsync(stream).ConfigureAwait(false); + return JsonConvert.DeserializeObject(json); } } } diff --git a/source/EzYuzu/EzYuzu.csproj b/source/EzYuzu/EzYuzu.csproj index 719681f..230a832 100644 --- a/source/EzYuzu/EzYuzu.csproj +++ b/source/EzYuzu/EzYuzu.csproj @@ -58,47 +58,20 @@ app.manifest - - ..\packages\Microsoft.Bcl.AsyncInterfaces.7.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll + + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll - - ..\packages\Ookii.Dialogs.WinForms.4.0.0\lib\net462\Ookii.Dialogs.WinForms.dll + + ..\packages\Ookii.Dialogs.WinForms.1.2.0\lib\net45\Ookii.Dialogs.WinForms.dll - - ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - - - ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll - - - ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - - ..\packages\System.Resources.Extensions.6.0.0\lib\net461\System.Resources.Extensions.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Text.Encodings.Web.7.0.0\lib\net462\System.Text.Encodings.Web.dll - - - ..\packages\System.Text.Json.7.0.2\lib\net462\System.Text.Json.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll - diff --git a/source/EzYuzu/Properties/AssemblyInfo.cs b/source/EzYuzu/Properties/AssemblyInfo.cs index 17de4d0..122fb84 100644 --- a/source/EzYuzu/Properties/AssemblyInfo.cs +++ b/source/EzYuzu/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.5.0.0")] -[assembly: AssemblyFileVersion("1.5.0.0")] +[assembly: AssemblyVersion("1.5.1.0")] +[assembly: AssemblyFileVersion("1.5.1.0")] diff --git a/source/EzYuzu/packages.config b/source/EzYuzu/packages.config index a1d7ce6..e2e669a 100644 --- a/source/EzYuzu/packages.config +++ b/source/EzYuzu/packages.config @@ -1,14 +1,5 @@  - - - - - - - - - - - + + \ No newline at end of file diff --git a/version b/version index 0014eea..6b4434b 100644 --- a/version +++ b/version @@ -1,2 +1,2 @@ -1.5.0.0 -1.4.0.0 +1.5.1.0 +1.4.0.0 \ No newline at end of file