From 2dee2aa57d473f6b7f645fdaa4425f5660041035 Mon Sep 17 00:00:00 2001 From: "Juster.zhu" Date: Mon, 10 Oct 2022 00:00:28 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=86=97=E4=BD=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generalupdate.metadata.v5 | Bin 784045 -> 785207 bytes .../generalupdate.projects.v5 | Bin 4280633 -> 7638953 bytes src/c#/GeneralUpdate.Api/Program.cs | 10 +++++----- src/c#/GeneralUpdate.Client/MainPage.xaml.cs | 2 ++ .../ViewModels/MainViewModel.cs | 6 +++--- src/c#/GeneralUpdate.Upgrad/Program.cs | 1 - src/c#/TestMD5/UnitTest1.cs | 2 +- 7 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 b/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 index 8ea0b844c8115e68ac194283c4e8abea766492e2..b9ddb9019c17e481ba8244731004285e430db83f 100644 GIT binary patch delta 1188 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 Xx)1)(`sIJtFQwgK|L^t7=QRHd%I3e0 delta 141 zcmV~$Syn*-007YANh)MWnKOkF*Wn< S!>73~3*UY$t*j5f^UWF3 { var versions = new List(); - var md5 = "dd776e3a4f2028a5f61187e23089ddbd"; + var md5 = "b03d52c279faf003965c46041f2037f9";//生成好的更新包文件的MD5码,因为返回给客户端的时候需要同这个来验证是否可用 var pubTime = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds(); string version = null; if (clientType == AppType.ClientApp) { //client //version = "0.0.0.0"; - version = "9.9.9.9"; + version = "9.9.9.9";//这里设置为9是让程序认为需要更新 } else if (clientType == AppType.UpgradeApp) { //upgrad //version = "0.0.0.0"; - version = "9.9.9.9"; + version = "9.9.9.9"; //这里设置为9是让程序认为需要更新 } - var url = $"http://127.0.0.1/1664083126.zip"; - var name = "1664081315"; + var url = $"http://192.168.50.203/testpacket.zip";//更新包的下载地址 + var name = "testpacket"; versions.Add(new VersionDTO(md5, pubTime, version, url, name)); return updateService.Update(clientType, clientVersion, version, clientAppKey, GetAppSecretKey(), false, versions); }); diff --git a/src/c#/GeneralUpdate.Client/MainPage.xaml.cs b/src/c#/GeneralUpdate.Client/MainPage.xaml.cs index fa479912..62c8aaa2 100644 --- a/src/c#/GeneralUpdate.Client/MainPage.xaml.cs +++ b/src/c#/GeneralUpdate.Client/MainPage.xaml.cs @@ -7,6 +7,7 @@ using GeneralUpdate.Core.Strategys.PlatformiOS; using GeneralUpdate.Core.Strategys.PlatformMac; using GeneralUpdate.Core.Strategys.PlatformWindows; +using GeneralUpdate.Core.Utils; using System.Text; namespace GeneralUpdate.Client @@ -25,6 +26,7 @@ public MainPage() private void OnLoaded(object sender, EventArgs e) { + var md5 = FileUtil.GetFileMD5(@"F:\temp\target\testpacket.zip"); VersionHub.Instance.Subscribe($"{baseUrl}/{hubName}", "TESTNAME", new Action(GetMessage)); } diff --git a/src/c#/GeneralUpdate.PacketTool/ViewModels/MainViewModel.cs b/src/c#/GeneralUpdate.PacketTool/ViewModels/MainViewModel.cs index 1c8848be..19bb274b 100644 --- a/src/c#/GeneralUpdate.PacketTool/ViewModels/MainViewModel.cs +++ b/src/c#/GeneralUpdate.PacketTool/ViewModels/MainViewModel.cs @@ -1,6 +1,7 @@ 锘縰sing CommunityToolkit.Mvvm.Input; using GeneralUpdate.AspNetCore.DTO; using GeneralUpdate.Core.Domain.Enum; +using GeneralUpdate.Core.Utils; using GeneralUpdate.Differential; using GeneralUpdate.Infrastructure.DataServices.Pick; using GeneralUpdate.Infrastructure.MVVM; @@ -178,8 +179,6 @@ private async Task BuildPacketCallback() { await DifferentialCore.Instance.Clean(SourcePath, TargetPath, PatchPath, (sender, args) =>{}, String2OperationType(CurrentFormat),String2Encoding(CurrentEncoding), PacketName); - - //await DifferentialCore.Instance.Drity(SourcePath,PatchPath); if (IsPublish) { var packetPath = Path.Combine(TargetPath,$"{PacketName}{CurrentFormat}"); @@ -188,7 +187,8 @@ await DifferentialCore.Instance.Clean(SourcePath, TargetPath, PatchPath, (sender await Shell.Current.DisplayAlert("Build options", $"The package was not found in the following path {packetPath} !", "cancel"); return; } - await _mainService.PostUpgradPakcet(Url,packetPath, String2AppType(CurrnetAppType), CurrentVersion,CurrentClientAppKey,"", async (resp) => + var md5 = FileUtil.GetFileMD5(packetPath); + await _mainService.PostUpgradPakcet(Url,packetPath, String2AppType(CurrnetAppType), CurrentVersion,CurrentClientAppKey, md5, async (resp) => { if (resp == null) { diff --git a/src/c#/GeneralUpdate.Upgrad/Program.cs b/src/c#/GeneralUpdate.Upgrad/Program.cs index d1284f5e..2fc61c9f 100644 --- a/src/c#/GeneralUpdate.Upgrad/Program.cs +++ b/src/c#/GeneralUpdate.Upgrad/Program.cs @@ -15,7 +15,6 @@ static void Main(string[] args) Thread.Sleep(5000); Task.Run(async () => { - //var arg = "eyJBcHBUeXBlIjoxLCJBcHBOYW1lIjoiR2VuZXJhbFVwZGF0ZS5DbGllbnQiLCJJbnN0YWxsUGF0aCI6IkY6XFxnaXRfcHJvamVjdFxcR2VuZXJhbFVwZGF0ZVxcc3JjXFxjI1xcR2VuZXJhbFVwZGF0ZS5DbGllbnRcXGJpblxcRGVidWdcXG5ldDYuMC13aW5kb3dzMTAuMC4xOTA0MS4wXFx3aW4xMC14NjRcXEFwcFhcXCIsIkN1cnJlbnRWZXJzaW9uIjoiMS4wLjAuMCIsIkxhc3RWZXJzaW9uIjoiOS45LjkuOSIsIkxvZ1VybCI6bnVsbCwiSXNVcGRhdGUiOmZhbHNlLCJDb21wcmVzc0VuY29kaW5nIjo3LCJDb21wcmVzc0Zvcm1hdCI6bnVsbCwiRG93bmxvYWRUaW1lT3V0IjowLCJBcHBTZWNyZXRLZXkiOiJCOEE3RkFERC0zODZDLTQ2QjAtQjI4My1DOUY5NjM0MjBDN0MiLCJVcGRhdGVWZXJzaW9ucyI6W3siUHViVGltZSI6MTY2NDA5NjUyMCwiTmFtZSI6IjE2NjQwODEzMTUiLCJNRDUiOiJkZDc3NmUzYTRmMjAyOGE1ZjYxMTg3ZTIzMDg5ZGRiZCIsIlZlcnNpb24iOiIwLjAuMC4wIiwiVXJsIjoiaHR0cDovLzEyNy4wLjAuMS8xNjY0MDgzMTI2LnppcCIsIklEIjpudWxsfV0sIklEIjpudWxsfQ=="; var bootStrap = new GeneralUpdateBootstrap(); bootStrap.MutiAllDownloadCompleted += OnMutiAllDownloadCompleted; bootStrap.MutiDownloadCompleted += OnMutiDownloadCompleted; diff --git a/src/c#/TestMD5/UnitTest1.cs b/src/c#/TestMD5/UnitTest1.cs index 648e40ad..857da114 100644 --- a/src/c#/TestMD5/UnitTest1.cs +++ b/src/c#/TestMD5/UnitTest1.cs @@ -9,7 +9,7 @@ public void Test1() { try { - string path = ""; + string path = "F:\temp\target\testpacket.zip"; var md5 = FileUtil.GetFileMD5(path); if (string.IsNullOrWhiteSpace(md5)) { From fe03d892f182fc0d131322bc268bbe4bb6a6a964 Mon Sep 17 00:00:00 2001 From: "Juster.zhu" Date: Wed, 19 Oct 2022 00:43:56 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E6=B7=BB=E5=8A=A0OSS=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generalupdate.metadata.v5 | Bin 785207 -> 781785 bytes .../generalupdate.projects.v5 | Bin 7638953 -> 13222439 bytes .../Domain/DO/OSSDownloadDO.cs | 15 +++++ .../Domain/DO/VersionConfigDO.cs | 17 +++++ .../GeneralUpdate.Core/Domain/DO/VersionDO.cs | 10 --- .../Download/DownloadOSS.cs | 25 ++++++++ src/c#/GeneralUpdate.Core/GeneralUpdateOSS.cs | 49 ++++++++++++++ src/c#/GeneralUpdate.Core/OSS/CustomOSS.cs | 60 ++++++++++++++++++ src/c#/GeneralUpdate.Core/OSS/IOSS.cs | 14 ++++ .../OSS/Strategys/IStrategy.cs | 33 ++++++++++ .../PlatformWindows/WindowsStrategy.cs | 29 +++++++++ .../GeneralUpdate.PacketTool.csproj | 15 ++++- 12 files changed, 254 insertions(+), 13 deletions(-) create mode 100644 src/c#/GeneralUpdate.Core/Domain/DO/OSSDownloadDO.cs create mode 100644 src/c#/GeneralUpdate.Core/Domain/DO/VersionConfigDO.cs delete mode 100644 src/c#/GeneralUpdate.Core/Domain/DO/VersionDO.cs create mode 100644 src/c#/GeneralUpdate.Core/Download/DownloadOSS.cs create mode 100644 src/c#/GeneralUpdate.Core/GeneralUpdateOSS.cs create mode 100644 src/c#/GeneralUpdate.Core/OSS/CustomOSS.cs create mode 100644 src/c#/GeneralUpdate.Core/OSS/IOSS.cs create mode 100644 src/c#/GeneralUpdate.Core/OSS/Strategys/IStrategy.cs create mode 100644 src/c#/GeneralUpdate.Core/OSS/Strategys/PlatformWindows/WindowsStrategy.cs diff --git a/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 b/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 index b9ddb9019c17e481ba8244731004285e430db83f..f8091e3028205cddbeae845cb1009fd4be0cb4ab 100644 GIT binary patch delta 1982 zcmaJ>YfMvT818p^>oS1^E`ISQO9A$A&MtoYpxCEiZ4{1c%LLE>wzKi*;I#)9fgsg>kyK-s|_& z&TFXjGXSrqdqI@2=kmT6{-ZJAQovNCLr9ILZJDau;*@)jQPKR1-T!$MSaOwgz{O5)y*$q6xvILLF|oEq39ZCt^05w0w^K zrtfaSy3Ln_ay**_^YBO}M4`h7#keh!G2qEtq5~UDkbtds#Rz%$Ju!)(<&hYVMRmLt zJ6G^5o{rQ-;HfM~Q7rJx0Ex$x-^Bp#Oon(g`1wiLW~BlrGHH4L8Ohaa&adA0QQak> z3|)V7ld*FHXTZe<9^~`)#Y#fv;@M{1B)n(^6IqXqaZnX>|HWf6ONPppKg1Lk`+gIP zgGDa32W2cm%877`;@bI?mj74F%=SMg6aDjlNT2J6Vya6Sg? zW|=toa{*e&?)kKtqQ@i-ucpFC%>R=_%T9m~Sq#pCc=eXr*64KDYk<9ERq2Lt-R>gT{ZO2Whc|I1OxN?G z>>dlt8Ei}7E%MHB5X+Dmp|h$UW37XEjCe#0C}cnsS*9Fw4w@V^pk&vJ$u{BCha@6+ zHJ=YI&QHdt8ITeh?g5uBMjyVo3VLz#@UR8CW$i>b^QJUq)LxD9iK0J$Y1O&ahve(4 zVWw6(#jfG<$^A%yv9h-Xj_akC*=tmEH${)GND8B0wL%ZUvh_5r``H|e zKm8&`%0=%%F)IoEed-$$T~8Dof0)=4(!06^3boSQwJj=oP;pyl8q`ad>$ZbiE0txv zt)jgYy|Zj&*sY@#F32~6(8Wn#Z+b^%?57O>sxTv6KJfvp(c^<&NS5{-{7$9l=_+r4 zZetIczNHP#{s#6jBo!NC^)dJ(r!z`fYmTc-p03^%PY;Eeon7D>ig)@TQL>i(pi;DS zP3%4QFU5Wg=9=kXD`K%VzNX1HPpZ5jbe*ajNlj&HdYTD-u`RQsO=LT+iNkPM3q(r` l?zO*Ayf(V?{R5$V%n#w7Hag|XCKcUE`&09l$3F&v`v+(?enbEO delta 2045 zcmY*aYj9I#8t(Uf$vG$Ir6CDTQ|R4N3Mseh?nsBWv_wh^aY$GO9TiCzX~EhHv?@iZ zEfP^gEkye0AKUJZ7aVtsvUByrF$oRjA{p%(X^73BK#W^sU&HuiS^`7Q2ej zJxVrKR}0l~<@--~`;K9)(WG7gle^3c>)E#PlBeOu zQZdOmdrqIm;D$CC`%dy|91DmPlwa31{LE=`ED|clKQ8ERuvM}5Q`6CPl@%cKlAg!v z5Uv#!=sm$TxIX4tH)}A;F6jqZtTQtI*Jb0t5}{!=ld3$CPvz)nx6eY3jink#NA+AA z?zybzV{nwEp?8RTaNa3_H?HWXSr9D7OU$c;HjR>5Bl^0O2e6>mo}!Jc`fknBQaBtg zOVq#pGNvsWJ1q z-o>zcVdCb4i$w;GW>Em;XZUn%F?gzZ$cxZ?ggeo6ny2BX#bPRA>9lyyKE|^KI>%#e+?pwz3d5s3L$38hKfRNni{J`Zq)0bZNUT zzfcgl!TpZnfnqWpS8Iw{>$tKluH(*eQSL^+jr$Bz=_$r`#!d5?Dt$PzP)xyNDI(R7 z-51*N#e1qH?@|OSrE`+~va9E&O5b;EQdJa>v26~hz!-7T zE9|yotUJTqMw5%`xNJ!}Z4r+CM>@dt1$!=Dj>{|NC9{fu>*S5~1T zs7%7q19p$?%~O3gjuR6oAHBmo)6yK@jOi=!Ogc+OR}Nid&zp6u9G~|bBpeb2&EpK?Dgamtl5 zo{jQLEV+9oEjE`xkvY(E^vhJpC)S!O<~xGt`)sCTmd6eD=n|=gHKjc{v=WzRQorfa zwHUrAtr}`jeuKyb`R$lr4v=f3Qi_luCk_TwyCZ3D<=dvgSKx4~T8ffUJ)1@F{sneF zzKzIra%fC$pD%5R8;@_(+}K|zZJyxCgivTRYGT}aR55xQm0Pq+;PN~mI+$sOO#)e9lfBTln|EA)(_j0wB@X9#vt_9prHZ;naiVcIzK)u<(kEf9o8oS8;fR3XOmLpUw*R2bC>W((JN2e6e0N IWKy&L0z6Z$<^TWy diff --git a/src/c#/.vs/ProjectEvaluation/generalupdate.projects.v5 b/src/c#/.vs/ProjectEvaluation/generalupdate.projects.v5 index f6f41522111b38751b53461a98a7ee290443b6b8..4501c869e511c4cd4d24e00e5184292c4040bb1f 100644 GIT binary patch delta 14272 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 delta 243 zcmV~$LskR;007WeQZ|v3w((XDIiL;pct{@ z#7mGUNwO5F(xl6fDND8-x$@*IP^d_;5~a$Nt5B&*wHmeR)N9bFNwXHM+O+G?sY|yW zz54VUFlflI5u?V8n=on0v>CJJ%v-Q%$+8uz)~wsGY0I`9yY}omaOlXf6Q|CcyKw2s YwHvqY+ + { + private string _url, _name, _targetPath; + + public DownloadOSS(string url,string name,string targetPath) + { + _url = url; + _name = name; + _targetPath = targetPath; + } + + public void Dowload() + { + DownloadFileRange(_name,_url, _targetPath); + } + } +} diff --git a/src/c#/GeneralUpdate.Core/GeneralUpdateOSS.cs b/src/c#/GeneralUpdate.Core/GeneralUpdateOSS.cs new file mode 100644 index 00000000..8f83c1fd --- /dev/null +++ b/src/c#/GeneralUpdate.Core/GeneralUpdateOSS.cs @@ -0,0 +1,49 @@ +锘縰sing GeneralUpdate.Core.Domain.DO; +using GeneralUpdate.Core.Domain.Enum; +using GeneralUpdate.Core.OSS; +using GeneralUpdate.Core.OSS.Strategys; +using GeneralUpdate.Core.OSS.Strategys.PlatformWindows; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; + +namespace GeneralUpdate.Core +{ + public sealed class GeneralUpdateOSS + { + public static async Task Start(string url,string platform = PlatformType.Windows) where T : IOSS, new() + { + IStrategy strategy = null; + string targetPath = ""; + var oss = new T(); + oss.SetParmeter(url, targetPath); + await oss.Download(); + if (File.Exists(targetPath)) throw new Exception($"The file was not found : {targetPath}!"); + string configContent = File.ReadAllText(targetPath); + var configDO = JsonConvert.DeserializeObject>(configContent); + foreach (var config in configDO) + { + oss.SetParmeter(config.Url, targetPath); + await oss.Download(); + } + switch (platform) + { + case PlatformType.Windows: + strategy = new WindowsStrategy(); + break; + case PlatformType.Linux: + break; + case PlatformType.Mac: + break; + case PlatformType.Android: + break; + case PlatformType.iOS: + break; + } + strategy.Excute(); + strategy.StartApp(""); + } + } +} diff --git a/src/c#/GeneralUpdate.Core/OSS/CustomOSS.cs b/src/c#/GeneralUpdate.Core/OSS/CustomOSS.cs new file mode 100644 index 00000000..74b8cede --- /dev/null +++ b/src/c#/GeneralUpdate.Core/OSS/CustomOSS.cs @@ -0,0 +1,60 @@ +锘縰sing GeneralUpdate.Core.Domain.Entity; +using GeneralUpdate.Core.Download; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace GeneralUpdate.Core.OSS +{ + public class CustomOSS : IOSS + { + private const string Format = ".zip"; + private const string TempPath = ".zip"; + private const int DownloadTimeOut = 60; + private string _targetPath; + + public CustomOSS() + { + _targetPath = + } + + public void GetVersionInfomation(string url) + { + + } + + public void GetVersions(List versions) + { + + } + + private async Task Download(string url) + { + bool isCompleted = false; + Exception exception = null; + var downloadTask = new DownloadOSS(url, name); + downloadTask.com + await downloadTask.Launch0(); + //var manager = new DownloadManager(TempPath, Format, DownloadTimeOut); + //manager.MutiAllDownloadCompleted += (s,e) => + //{ + // isCompleted = e.IsAllDownloadCompleted; + //} ; + //manager.MutiDownloadError += (s, e) => + //{ + // exception = e.Exception; + //}; + //manager.Add(new DownloadTask(manager, new VersionInfo(0,null, name, null, url))); + //manager.LaunchTaskAsync(); + if (isCompleted) + { + return Task.FromResult(""); + } + else + { + throw exception; + } + } + } +} diff --git a/src/c#/GeneralUpdate.Core/OSS/IOSS.cs b/src/c#/GeneralUpdate.Core/OSS/IOSS.cs new file mode 100644 index 00000000..10992dd8 --- /dev/null +++ b/src/c#/GeneralUpdate.Core/OSS/IOSS.cs @@ -0,0 +1,14 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace GeneralUpdate.Core.OSS +{ + public interface IOSS + { + void SetParmeter(string url,string targetPath); + + Task Download(); + } +} diff --git a/src/c#/GeneralUpdate.Core/OSS/Strategys/IStrategy.cs b/src/c#/GeneralUpdate.Core/OSS/Strategys/IStrategy.cs new file mode 100644 index 00000000..b5e2c3bd --- /dev/null +++ b/src/c#/GeneralUpdate.Core/OSS/Strategys/IStrategy.cs @@ -0,0 +1,33 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; + +namespace GeneralUpdate.Core.OSS.Strategys +{ + public interface IStrategy + { + /// + /// Execution strategy. + /// + void Excute(); + + /// + /// Create a policy. + /// + /// Abstraction for updating package information. + void Create(); + + /// + /// After the update is complete. + /// + /// + /// + bool StartApp(string appName); + + /// + /// Get the platform for the current strategy. + /// + /// + string GetPlatform(); + } +} diff --git a/src/c#/GeneralUpdate.Core/OSS/Strategys/PlatformWindows/WindowsStrategy.cs b/src/c#/GeneralUpdate.Core/OSS/Strategys/PlatformWindows/WindowsStrategy.cs new file mode 100644 index 00000000..cc39a58e --- /dev/null +++ b/src/c#/GeneralUpdate.Core/OSS/Strategys/PlatformWindows/WindowsStrategy.cs @@ -0,0 +1,29 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; + +namespace GeneralUpdate.Core.OSS.Strategys.PlatformWindows +{ + public class WindowsStrategy : IStrategy + { + public void Create() + { + throw new NotImplementedException(); + } + + public void Excute() + { + throw new NotImplementedException(); + } + + public string GetPlatform() + { + throw new NotImplementedException(); + } + + public bool StartApp(string appName, int appType) + { + throw new NotImplementedException(); + } + } +} diff --git a/src/c#/GeneralUpdate.PacketTool/GeneralUpdate.PacketTool.csproj b/src/c#/GeneralUpdate.PacketTool/GeneralUpdate.PacketTool.csproj index cdc79b06..a2825341 100644 --- a/src/c#/GeneralUpdate.PacketTool/GeneralUpdate.PacketTool.csproj +++ b/src/c#/GeneralUpdate.PacketTool/GeneralUpdate.PacketTool.csproj @@ -19,8 +19,8 @@ 8672523b-4bf1-4ed3-b58a-e946dd6e27b9 - 1.0 - 1 + 2.1.5 + 2 14.2 14.0 @@ -28,8 +28,17 @@ 10.0.17763.0 10.0.17763.0 6.5 + 2.1.5 + + + + + true + 38B18B6B9F9B9755BB79B6AAE2AC27DD67E6B6CE + + + $(RuntimeIdentifierOverride) - From 2198603b361515a74e1c9ddaf4d3153338972673 Mon Sep 17 00:00:00 2001 From: "Juster.zhu" Date: Wed, 19 Oct 2022 22:34:23 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E6=B3=A8=E9=87=8A=E5=86=97=E4=BD=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generalupdate.metadata.v5 | Bin 781785 -> 781850 bytes .../generalupdate.projects.v5 | Bin 13222439 -> 16782278 bytes src/c#/GeneralUpdate.Core/GeneralUpdateOSS.cs | 64 ++++++------- src/c#/GeneralUpdate.Core/OSS/CustomOSS.cs | 88 +++++++++--------- .../PlatformWindows/WindowsStrategy.cs | 2 +- .../Pipelines/Middleware/ZipMiddleware.cs | 2 +- 6 files changed, 78 insertions(+), 78 deletions(-) diff --git a/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 b/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 index f8091e3028205cddbeae845cb1009fd4be0cb4ab..12b3ec6f25edd54e047f37f36819cfd62bb277bf 100644 GIT binary patch delta 388 zcmcb4TYuIaea5Ut##TlkVrpe%Ze?U?Wn^t-WNT$)Z)N0YW#rt-$i?}_DOH<+fy2?+ z)zZz$&@c_eadR?qc6N0!Ne6KZj1Al@O^uv0KpbaRBR3aQQ;SRx$JoWu(ACY+&2hS* zD4XMUpEq3fjY8g=z+;e9;|1|E)OpM~w3q(0ZL^AV>ublh|RspgCtYSJ) zh4%L854jgGO`pD=TSjp2vfp485&8(3Y`^@3`z^DO=eBQPS&&83Ikv*R K^5+HjT^0bC)OI2O delta 312 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 diff --git a/src/c#/GeneralUpdate.Core/GeneralUpdateOSS.cs b/src/c#/GeneralUpdate.Core/GeneralUpdateOSS.cs index 8f83c1fd..6951ba14 100644 --- a/src/c#/GeneralUpdate.Core/GeneralUpdateOSS.cs +++ b/src/c#/GeneralUpdate.Core/GeneralUpdateOSS.cs @@ -13,37 +13,37 @@ namespace GeneralUpdate.Core { public sealed class GeneralUpdateOSS { - public static async Task Start(string url,string platform = PlatformType.Windows) where T : IOSS, new() - { - IStrategy strategy = null; - string targetPath = ""; - var oss = new T(); - oss.SetParmeter(url, targetPath); - await oss.Download(); - if (File.Exists(targetPath)) throw new Exception($"The file was not found : {targetPath}!"); - string configContent = File.ReadAllText(targetPath); - var configDO = JsonConvert.DeserializeObject>(configContent); - foreach (var config in configDO) - { - oss.SetParmeter(config.Url, targetPath); - await oss.Download(); - } - switch (platform) - { - case PlatformType.Windows: - strategy = new WindowsStrategy(); - break; - case PlatformType.Linux: - break; - case PlatformType.Mac: - break; - case PlatformType.Android: - break; - case PlatformType.iOS: - break; - } - strategy.Excute(); - strategy.StartApp(""); - } + //public static async Task Start(string url,string platform = PlatformType.Windows) where T : IOSS, new() + //{ + // IStrategy strategy = null; + // string targetPath = ""; + // var oss = new T(); + // oss.SetParmeter(url, targetPath); + // await oss.Download(); + // if (File.Exists(targetPath)) throw new Exception($"The file was not found : {targetPath}!"); + // string configContent = File.ReadAllText(targetPath); + // var configDO = JsonConvert.DeserializeObject>(configContent); + // foreach (var config in configDO) + // { + // oss.SetParmeter(config.Url, targetPath); + // await oss.Download(); + // } + // switch (platform) + // { + // case PlatformType.Windows: + // strategy = new WindowsStrategy(); + // break; + // case PlatformType.Linux: + // break; + // case PlatformType.Mac: + // break; + // case PlatformType.Android: + // break; + // case PlatformType.iOS: + // break; + // } + // strategy.Excute(); + // strategy.StartApp(""); + //} } } diff --git a/src/c#/GeneralUpdate.Core/OSS/CustomOSS.cs b/src/c#/GeneralUpdate.Core/OSS/CustomOSS.cs index 74b8cede..f1d1e354 100644 --- a/src/c#/GeneralUpdate.Core/OSS/CustomOSS.cs +++ b/src/c#/GeneralUpdate.Core/OSS/CustomOSS.cs @@ -7,54 +7,54 @@ namespace GeneralUpdate.Core.OSS { - public class CustomOSS : IOSS - { - private const string Format = ".zip"; - private const string TempPath = ".zip"; - private const int DownloadTimeOut = 60; - private string _targetPath; + //public class CustomOSS : IOSS + //{ + // private const string Format = ".zip"; + // private const string TempPath = ".zip"; + // private const int DownloadTimeOut = 60; + // private string _targetPath; - public CustomOSS() - { - _targetPath = - } + // public CustomOSS() + // { + // _targetPath = + // } - public void GetVersionInfomation(string url) - { + // public void GetVersionInfomation(string url) + // { - } + // } - public void GetVersions(List versions) - { + // public void GetVersions(List versions) + // { - } + // } - private async Task Download(string url) - { - bool isCompleted = false; - Exception exception = null; - var downloadTask = new DownloadOSS(url, name); - downloadTask.com - await downloadTask.Launch0(); - //var manager = new DownloadManager(TempPath, Format, DownloadTimeOut); - //manager.MutiAllDownloadCompleted += (s,e) => - //{ - // isCompleted = e.IsAllDownloadCompleted; - //} ; - //manager.MutiDownloadError += (s, e) => - //{ - // exception = e.Exception; - //}; - //manager.Add(new DownloadTask(manager, new VersionInfo(0,null, name, null, url))); - //manager.LaunchTaskAsync(); - if (isCompleted) - { - return Task.FromResult(""); - } - else - { - throw exception; - } - } - } + // private async Task Download(string url) + // { + // bool isCompleted = false; + // Exception exception = null; + // var downloadTask = new DownloadOSS(url, name); + // downloadTask.com + // await downloadTask.Launch0(); + // //var manager = new DownloadManager(TempPath, Format, DownloadTimeOut); + // //manager.MutiAllDownloadCompleted += (s,e) => + // //{ + // // isCompleted = e.IsAllDownloadCompleted; + // //} ; + // //manager.MutiDownloadError += (s, e) => + // //{ + // // exception = e.Exception; + // //}; + // //manager.Add(new DownloadTask(manager, new VersionInfo(0,null, name, null, url))); + // //manager.LaunchTaskAsync(); + // if (isCompleted) + // { + // return Task.FromResult(""); + // } + // else + // { + // throw exception; + // } + // } + //} } diff --git a/src/c#/GeneralUpdate.Core/OSS/Strategys/PlatformWindows/WindowsStrategy.cs b/src/c#/GeneralUpdate.Core/OSS/Strategys/PlatformWindows/WindowsStrategy.cs index cc39a58e..2bd282b1 100644 --- a/src/c#/GeneralUpdate.Core/OSS/Strategys/PlatformWindows/WindowsStrategy.cs +++ b/src/c#/GeneralUpdate.Core/OSS/Strategys/PlatformWindows/WindowsStrategy.cs @@ -4,7 +4,7 @@ namespace GeneralUpdate.Core.OSS.Strategys.PlatformWindows { - public class WindowsStrategy : IStrategy + public class WindowsStrategy// : IStrategy { public void Create() { diff --git a/src/c#/GeneralUpdate.Core/Pipelines/Middleware/ZipMiddleware.cs b/src/c#/GeneralUpdate.Core/Pipelines/Middleware/ZipMiddleware.cs index ad23d4bb..f96a2178 100644 --- a/src/c#/GeneralUpdate.Core/Pipelines/Middleware/ZipMiddleware.cs +++ b/src/c#/GeneralUpdate.Core/Pipelines/Middleware/ZipMiddleware.cs @@ -20,7 +20,7 @@ public async Task InvokeAsync(BaseContext context, MiddlewareStack stack) bool isUnzip = UnZip(context); if (!isUnzip) throw exception = new Exception($"Unzip file failed , Version-{ version.Version } MD5-{ version.MD5 } !"); - await ConfigFactory.Instance.Scan(context.SourcePath, context.TargetPath); + //await ConfigFactory.Instance.Scan(context.SourcePath, context.TargetPath); var node = stack.Pop(); if (node != null) await node.Next.Invoke(context, stack); } From 1bc20ad803cb6b3f1157ffd31cee65fe4bd77765 Mon Sep 17 00:00:00 2001 From: "Juster.zhu" Date: Thu, 20 Oct 2022 00:57:16 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=A3=B0=E6=98=8E=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generalupdate.metadata.v5 | Bin 781850 -> 781863 bytes .../generalupdate.projects.v5 | Bin 16782278 -> 17547408 bytes .../GeneralClientBootstrap.cs | 4 +- .../Exceptions/ThrowHelper.cs | 506 ++++++++++++++++++ .../{ => OSS}/GeneralUpdateOSS.cs | 3 +- 5 files changed, 509 insertions(+), 4 deletions(-) create mode 100644 src/c#/GeneralUpdate.Core/Exceptions/ThrowHelper.cs rename src/c#/GeneralUpdate.Core/{ => OSS}/GeneralUpdateOSS.cs (96%) diff --git a/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 b/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 index 12b3ec6f25edd54e047f37f36819cfd62bb277bf..73cb84eb8e35f0916f7f6b865360b6fb33cd2e85 100644 GIT binary patch delta 1194 zcmYLIZBSHY7~S{o-goc453nrDH!JKS2D$-J5(pYfGv??jkP3}yK?WrZ9|9xQ7@*_+ z(21Z{IZ6ym^#hw}6sM^>Rud>Q{c%c&nMxE#!~t`R0TjoAu)E8!-nsYBd(Ly7=RD`V z9XC>YZltn`Bh1CLS8y@Ciy2%@bTRH?Mi-M@O#YTBTki*zJ9Ii}?aR68x#{UIY=SwA zZ&F+CD-Dd5xb0gC&=MpBt5>EJGlOADDaAlIZF4u*n%gVHKrAjYBb?KUgmI!*5ip~4 zv3>3f;W22NXNh=YR&in1v{I&y&nkNv4(_DYu+{S9_E{x{9YLCd=b*V!Ooq+C!Vx#8 zNbC&K`i!sRxpib$|Cv*^2{79z1^sXHV0`#ciDQizlK5`a)QPJx@K~8-PWR%UnJAu9 ztVoNZz3x2~R@wRf#Qwu4Mx>Me9*IZ|;Hm1dd8J&BmcNw@v~A>>{O-O#P`dhvs^FCJRD0BZ;*r;!xlRGQ>Kf1(tR!2+XOGh&ymcrXx7Z=qNjmvGtUU{*_V=D4WM(S|JHz&r%_tn1vwqI#CzH!1kxx4uVHd zCZwz&tJkIplaUmo_61U_z{>D>8!y9pt~n_2TH1|YOhN#9gSCT$-fb75lT$o~b7`kH z7&ESB@o4o$GmSBJNQ*lg2WFJD$gv1URFhWK;rE${R^sXM&}SlR((?Gy4`iUXNla1u zLTN_C{usLFy&X{~j-+h-7$AhHSV12Mxa~cxNuaH0+NgQFW~0AQxQ2Y`C7?K#OXynE z_J2B_{=jc5X$~cBAqx4Gd>uShT;#g1Hurcc(Oszdy_G<3G4w{$H^^a{Zg4H%;9a)? zA6IiD&RMBh&3%TBGgv~jj)PYI(x(eX_4_0W6PCu)6tWQekeLGOOKRUKt*_HXUS9a= zU6^e2CKeo2r)nvP443Uxis326*CSV68e&8$@?BM_ON^68U*VO}N!O$;7^*jJK%j#x z_{2dKsIo0j_FsW9)L;7AsUg~-rl(MTe#p-j9n)zK*S@O57jKSUKx-?lQ7<)8o<1ah zhWSvvhF*$1=SQ7K>4C+(`D?uoHEHN@`R$2OHNTyP1?_LG36n!{RWw@6R}P6jPJqT) z<-9pD3XS7X6Mv7v REYlj!P`9AIcZa@^{|APnl??y@ delta 1244 zcmZ8gTTB#Z6y^-fW#@3&1s1uLi(;0Gu%cE`ib$mmmx@3jrX?f@X-bwXuF#ZJxz~MY zQ!ToLukawyCbcDPkcVb!qLGj`#MD;oO=B>Dq=Y850zxB-KxcP>hfZexhdJMW{_k@B zE0fl~Nh{ep$VvJuILX&ZeohjdBsocTlHw%8x1<(4q8ymaQjXU5NNpmVn^WILbr6^0 ze4t>|8Xv1B!s#$BbhS5_dg{agtgVqOo5qV;nm>Ag;srGl#dc{Q25gcaY)@1(b|!O% z%aI?6A6F>?x93$S)#C2E@*9{akqt;Il>;$)R2F5QuU@~>Z}&90g|TvufJ5LM{Ii$B zQ60_+uHs|+QMjmfQJH&x79KuTW2pn_DN;7tTg6nw`B50|EU5~rpQ+{4i}agv1+1BD zLeW7sYGwbbg#xwWt|FDg(I_V2?6NvbO&IKw-a^$2Rd!X?g~9qtD%8Doumx6s$*TSIT($Y4eo>7^*9s-#_zK12W*jT@=@v8t zQ|sy~#`bdxMlH&AuLo1-6cbuxR*;|ImYu|hu$wpx-3oWo`Txnl>?=|*ekbmPS=Hgj z1}V#JquH?GpkjB$=apdHUr;c-heEX<1inUC4CGUE+AaPB@|L7X95(9QKHlPX0KEDcPQE5Oese4`7Y_r#Cpt|ISW(4oJ%$Ok>%RDfxjj_ z-ji{htmXUjkbvc7wG?wJssT5GIEY%XaFpwC?~oL%eQ)GxqP{Hx7JS0e%NPyOjX3EN zBHWX75dHO%xTWm#E${(cZ4=Wpdnhl6RNx&5%R5p4rgv~HIox#67DZ9G6Upym?4?bk zbg%tz;glp}D1qA%%g~!P}tSzQ;e{pd5-oJg^k6Hf) zKOEWjU<4C3J;0w^`M7Uz*_pGR>Nn)$V{4Ap#)sV1G_A6e=R!xEy!%e^4dgdtxZx*2!Q?!|B9uP1y%+aPBU#xf#;rd$f@Y3~3FCyzIm!)HO dFDIJD_pEskZgP$k*CwL7mrKGl=b!wU;Xf=ns@MPk diff --git a/src/c#/.vs/ProjectEvaluation/generalupdate.projects.v5 b/src/c#/.vs/ProjectEvaluation/generalupdate.projects.v5 index 32eecda9fe310099277100a5d45503a35ba800ba..a7ea19accb7e5d2771860d81439e481c5393b2b5 100644 GIT binary patch delta 940 zcmYk2jbF@n0LNcfSyz+fDT+EfjIzqZNQzWbhT6u74asBLhJ-wxOK)ACbIcEysoBIv zvX*ZPxrS^W&$Coq+mz=#>x5IUS6=l8eBSTZ`%{#uk*6l^lWUM+g*7%b;R9@uV~0H- z(i8`p;Yf3wXhBO_(V8|m)0TF);7WTs;D$R2I`R=pI?4j{-~7W#PH~zu zoaG!w&U1l_T;eiUxXLw(xlReClyQTbm?-C8{^NgcQ9&iQxx-!Vai0e~q>4v8<_S-E z#&cfql4{JnqK4PJ;VqUtSy4-A!O)aQF}d%}Y-`(CPub)0SWgjMvcoY!tP9C<4b?{I z3?f2TIMP)LY!a-J99OD~q=KZ@G2)DWSeTV$3Ucv#zthI47l}Ca;=2bVpIu)5lIfma zDWdY%HX;|6cTaK<>JsxYJJH-WO)nE=6=t1GO7)uLD%Dh)ous|J%C9d^x5`bo?%7$m zr&zLVgvP_VG(@CNtqHIf8sFrF-K2+I-|9tGp;;-HjNai&F|&AeBT2@L#UipB#TKlK*|m%R*HgXT_bvr z_5DJd)zOd2gipf3Yw~)qF?V}ILL047r4dF|qQmpv*2}R|E$U&ku g!r6Y4yPHB-a>wK}yq`GiX_AAs_M_ULUJX3;4w38G)&Kwi delta 523 zcmV~$1C$U3007XJFXOUXHn)sr+jgrVTX*f}RhMmCzT9PBu5EE)*|zb2NN`v{L}*Yz zkVqnnBC2Sjiy=TvvBVZfT=B%0KthQGN-T+_l1VOwlu}78jkMB9FM}Uslu2e;WR*>J zIpmZ}Zh7RDPksdyRLGBhQdkj16;oUZC6!WI89ytloboEDsFKR6sH&RkYN)A}+UlsQ zp86VSsFB8+XsVg!T4<@2*4k*Ro%TBDsFPoG*2S-W^SeKE)lGLj^wdjlee~5&e*+9O z$Y4VZ6(ra&e`2^1MjBS0a@!qu-E-dq4?XhO6Hh(!+zT(g^4c43z4P7& QAAR!K7hin~j}#I39SVI2+W-In diff --git a/src/c#/GeneralUpdate.ClientCore/GeneralClientBootstrap.cs b/src/c#/GeneralUpdate.ClientCore/GeneralClientBootstrap.cs index 227568a3..02510442 100644 --- a/src/c#/GeneralUpdate.ClientCore/GeneralClientBootstrap.cs +++ b/src/c#/GeneralUpdate.ClientCore/GeneralClientBootstrap.cs @@ -80,8 +80,8 @@ public GeneralClientBootstrap Config(string url,string appSecretKey, string appN Packet.AppName = appName; string clienVersion = GetFileVersion(Path.Combine(basePath, $"{Packet.AppName}.exe")); Packet.ClientVersion = clienVersion; - Packet.AppType = AppType.ClientApp; - Packet.UpdateUrl = $"{url}/versions/{ Packet.AppType }/{ clienVersion }/{ Packet.AppSecretKey }"; + Packet.AppType = AppType.UpgradeApp; + Packet.UpdateUrl = $"{url}/versions/{AppType.UpgradeApp}/{ clienVersion }/{ Packet.AppSecretKey }"; //main app. string mainAppName = Path.GetFileNameWithoutExtension(Process.GetCurrentProcess().MainModule.FileName); string mainVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString(); diff --git a/src/c#/GeneralUpdate.Core/Exceptions/ThrowHelper.cs b/src/c#/GeneralUpdate.Core/Exceptions/ThrowHelper.cs new file mode 100644 index 00000000..38585344 --- /dev/null +++ b/src/c#/GeneralUpdate.Core/Exceptions/ThrowHelper.cs @@ -0,0 +1,506 @@ +锘縰sing System; +using System.Diagnostics.Contracts; +using System.Runtime.Serialization; + +namespace GeneralUpdate.Core.Exceptions +{ + [Pure] + public static class @ThrowHelper + { + //internal static void ThrowArgumentOutOfRangeException() + //{ + // ThrowArgumentOutOfRangeException(ExceptionArgument.index, ExceptionResource.ArgumentOutOfRange_Index); + //} + + //internal static void ThrowWrongKeyTypeArgumentException(object key, Type targetType) + //{ + // throw new ArgumentException(Environment.GetResourceString("Arg_WrongType", key, targetType), "key"); + //} + + //internal static void ThrowWrongValueTypeArgumentException(object value, Type targetType) + //{ + // throw new ArgumentException(Environment.GetResourceString("Arg_WrongType", value, targetType), "value"); + //} + + internal static void ThrowKeyNotFoundException() + { + throw new System.Collections.Generic.KeyNotFoundException(); + } + + //internal static void ThrowArgumentException(ExceptionResource resource) + //{ + // throw new ArgumentException(Environment.GetResourceString(GetResourceName(resource))); + //} + + //internal static void ThrowArgumentException(ExceptionResource resource, ExceptionArgument argument) + //{ + // throw new ArgumentException(Environment.GetResourceString(GetResourceName(resource)), GetArgumentName(argument)); + //} + + internal static void ThrowArgumentNullException(ExceptionArgument argument) + { + throw new ArgumentNullException(GetArgumentName(argument)); + } + + internal static void ThrowArgumentOutOfRangeException(ExceptionArgument argument) + { + throw new ArgumentOutOfRangeException(GetArgumentName(argument)); + } + + //internal static void ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) + //{ + + // if (CompatibilitySwitches.IsAppEarlierThanWindowsPhone8) + // { + // // Dev11 474369 quirk: Mango had an empty message string: + // throw new ArgumentOutOfRangeException(GetArgumentName(argument), String.Empty); + // } + // else + // { + // throw new ArgumentOutOfRangeException(GetArgumentName(argument), + // Environment.GetResourceString(GetResourceName(resource))); + // } + //} + + //internal static void ThrowInvalidOperationException(ExceptionResource resource) + //{ + // throw new InvalidOperationException(Environment.GetResourceString(GetResourceName(resource))); + //} + + //internal static void ThrowSerializationException(ExceptionResource resource) + //{ + // throw new SerializationException(Environment.GetResourceString(GetResourceName(resource))); + //} + + //internal static void ThrowSecurityException(ExceptionResource resource) + //{ + // throw new System.Security.SecurityException(Environment.GetResourceString(GetResourceName(resource))); + //} + + //internal static void ThrowNotSupportedException(ExceptionResource resource) + //{ + // throw new NotSupportedException(Environment.GetResourceString(GetResourceName(resource))); + //} + + //internal static void ThrowUnauthorizedAccessException(ExceptionResource resource) + //{ + // throw new UnauthorizedAccessException(Environment.GetResourceString(GetResourceName(resource))); + //} + + //internal static void ThrowObjectDisposedException(string objectName, ExceptionResource resource) + //{ + // throw new ObjectDisposedException(objectName, Environment.GetResourceString(GetResourceName(resource))); + //} + + // Allow nulls for reference types and Nullable, but not for value types. + internal static void IfNullAndNullsAreIllegalThenThrow(object value, ExceptionArgument argName) + { + // Note that default(T) is not equal to null for value types except when T is Nullable. + if (value == null && !(default(T) == null)) + ThrowHelper.ThrowArgumentNullException(argName); + } + + // + // This function will convert an ExceptionArgument enum value to the argument name string. + // + internal static string GetArgumentName(ExceptionArgument argument) + { + string argumentName = null; + + switch (argument) + { + case ExceptionArgument.array: + argumentName = "array"; + break; + + case ExceptionArgument.arrayIndex: + argumentName = "arrayIndex"; + break; + + case ExceptionArgument.capacity: + argumentName = "capacity"; + break; + + case ExceptionArgument.collection: + argumentName = "collection"; + break; + + case ExceptionArgument.list: + argumentName = "list"; + break; + + case ExceptionArgument.converter: + argumentName = "converter"; + break; + + case ExceptionArgument.count: + argumentName = "count"; + break; + + case ExceptionArgument.dictionary: + argumentName = "dictionary"; + break; + + case ExceptionArgument.dictionaryCreationThreshold: + argumentName = "dictionaryCreationThreshold"; + break; + + case ExceptionArgument.index: + argumentName = "index"; + break; + + case ExceptionArgument.info: + argumentName = "info"; + break; + + case ExceptionArgument.key: + argumentName = "key"; + break; + + case ExceptionArgument.match: + argumentName = "match"; + break; + + case ExceptionArgument.obj: + argumentName = "obj"; + break; + + case ExceptionArgument.queue: + argumentName = "queue"; + break; + + case ExceptionArgument.stack: + argumentName = "stack"; + break; + + case ExceptionArgument.startIndex: + argumentName = "startIndex"; + break; + + case ExceptionArgument.value: + argumentName = "value"; + break; + + case ExceptionArgument.name: + argumentName = "name"; + break; + + case ExceptionArgument.mode: + argumentName = "mode"; + break; + + case ExceptionArgument.item: + argumentName = "item"; + break; + + case ExceptionArgument.options: + argumentName = "options"; + break; + + case ExceptionArgument.view: + argumentName = "view"; + break; + + case ExceptionArgument.sourceBytesToCopy: + argumentName = "sourceBytesToCopy"; + break; + + default: + Contract.Assert(false, "The enum value is not defined, please checked ExceptionArgumentName Enum."); + return string.Empty; + } + + return argumentName; + } + + // + // This function will convert an ExceptionResource enum value to the resource string. + // + internal static string GetResourceName(ExceptionResource resource) + { + string resourceName = null; + + switch (resource) + { + case ExceptionResource.Argument_ImplementIComparable: + resourceName = "Argument_ImplementIComparable"; + break; + + case ExceptionResource.Argument_AddingDuplicate: + resourceName = "Argument_AddingDuplicate"; + break; + + case ExceptionResource.ArgumentOutOfRange_BiggerThanCollection: + resourceName = "ArgumentOutOfRange_BiggerThanCollection"; + break; + + case ExceptionResource.ArgumentOutOfRange_Count: + resourceName = "ArgumentOutOfRange_Count"; + break; + + case ExceptionResource.ArgumentOutOfRange_Index: + resourceName = "ArgumentOutOfRange_Index"; + break; + + case ExceptionResource.ArgumentOutOfRange_InvalidThreshold: + resourceName = "ArgumentOutOfRange_InvalidThreshold"; + break; + + case ExceptionResource.ArgumentOutOfRange_ListInsert: + resourceName = "ArgumentOutOfRange_ListInsert"; + break; + + case ExceptionResource.ArgumentOutOfRange_NeedNonNegNum: + resourceName = "ArgumentOutOfRange_NeedNonNegNum"; + break; + + case ExceptionResource.ArgumentOutOfRange_SmallCapacity: + resourceName = "ArgumentOutOfRange_SmallCapacity"; + break; + + case ExceptionResource.Arg_ArrayPlusOffTooSmall: + resourceName = "Arg_ArrayPlusOffTooSmall"; + break; + + case ExceptionResource.Arg_RankMultiDimNotSupported: + resourceName = "Arg_RankMultiDimNotSupported"; + break; + + case ExceptionResource.Arg_NonZeroLowerBound: + resourceName = "Arg_NonZeroLowerBound"; + break; + + case ExceptionResource.Argument_InvalidArrayType: + resourceName = "Argument_InvalidArrayType"; + break; + + case ExceptionResource.Argument_InvalidOffLen: + resourceName = "Argument_InvalidOffLen"; + break; + + case ExceptionResource.Argument_ItemNotExist: + resourceName = "Argument_ItemNotExist"; + break; + + case ExceptionResource.InvalidOperation_CannotRemoveFromStackOrQueue: + resourceName = "InvalidOperation_CannotRemoveFromStackOrQueue"; + break; + + case ExceptionResource.InvalidOperation_EmptyQueue: + resourceName = "InvalidOperation_EmptyQueue"; + break; + + case ExceptionResource.InvalidOperation_EnumOpCantHappen: + resourceName = "InvalidOperation_EnumOpCantHappen"; + break; + + case ExceptionResource.InvalidOperation_EnumFailedVersion: + resourceName = "InvalidOperation_EnumFailedVersion"; + break; + + case ExceptionResource.InvalidOperation_EmptyStack: + resourceName = "InvalidOperation_EmptyStack"; + break; + + case ExceptionResource.InvalidOperation_EnumNotStarted: + resourceName = "InvalidOperation_EnumNotStarted"; + break; + + case ExceptionResource.InvalidOperation_EnumEnded: + resourceName = "InvalidOperation_EnumEnded"; + break; + + case ExceptionResource.NotSupported_KeyCollectionSet: + resourceName = "NotSupported_KeyCollectionSet"; + break; + + case ExceptionResource.NotSupported_ReadOnlyCollection: + resourceName = "NotSupported_ReadOnlyCollection"; + break; + + case ExceptionResource.NotSupported_ValueCollectionSet: + resourceName = "NotSupported_ValueCollectionSet"; + break; + + + case ExceptionResource.NotSupported_SortedListNestedWrite: + resourceName = "NotSupported_SortedListNestedWrite"; + break; + + + case ExceptionResource.Serialization_InvalidOnDeser: + resourceName = "Serialization_InvalidOnDeser"; + break; + + case ExceptionResource.Serialization_MissingKeys: + resourceName = "Serialization_MissingKeys"; + break; + + case ExceptionResource.Serialization_NullKey: + resourceName = "Serialization_NullKey"; + break; + + case ExceptionResource.Argument_InvalidType: + resourceName = "Argument_InvalidType"; + break; + + case ExceptionResource.Argument_InvalidArgumentForComparison: + resourceName = "Argument_InvalidArgumentForComparison"; + break; + + case ExceptionResource.InvalidOperation_NoValue: + resourceName = "InvalidOperation_NoValue"; + break; + + case ExceptionResource.InvalidOperation_RegRemoveSubKey: + resourceName = "InvalidOperation_RegRemoveSubKey"; + break; + + case ExceptionResource.Arg_RegSubKeyAbsent: + resourceName = "Arg_RegSubKeyAbsent"; + break; + + case ExceptionResource.Arg_RegSubKeyValueAbsent: + resourceName = "Arg_RegSubKeyValueAbsent"; + break; + + case ExceptionResource.Arg_RegKeyDelHive: + resourceName = "Arg_RegKeyDelHive"; + break; + + case ExceptionResource.Security_RegistryPermission: + resourceName = "Security_RegistryPermission"; + break; + + case ExceptionResource.Arg_RegSetStrArrNull: + resourceName = "Arg_RegSetStrArrNull"; + break; + + case ExceptionResource.Arg_RegSetMismatchedKind: + resourceName = "Arg_RegSetMismatchedKind"; + break; + + case ExceptionResource.UnauthorizedAccess_RegistryNoWrite: + resourceName = "UnauthorizedAccess_RegistryNoWrite"; + break; + + case ExceptionResource.ObjectDisposed_RegKeyClosed: + resourceName = "ObjectDisposed_RegKeyClosed"; + break; + + case ExceptionResource.Arg_RegKeyStrLenBug: + resourceName = "Arg_RegKeyStrLenBug"; + break; + + case ExceptionResource.Argument_InvalidRegistryKeyPermissionCheck: + resourceName = "Argument_InvalidRegistryKeyPermissionCheck"; + break; + + case ExceptionResource.NotSupported_InComparableType: + resourceName = "NotSupported_InComparableType"; + break; + + case ExceptionResource.Argument_InvalidRegistryOptionsCheck: + resourceName = "Argument_InvalidRegistryOptionsCheck"; + break; + + case ExceptionResource.Argument_InvalidRegistryViewCheck: + resourceName = "Argument_InvalidRegistryViewCheck"; + break; + + default: + Contract.Assert(false, "The enum value is not defined, please checked ExceptionArgumentName Enum."); + return string.Empty; + } + + return resourceName; + } + + } + + // + // The convention for this enum is using the argument name as the enum name + // + internal enum ExceptionArgument + { + obj, + dictionary, + dictionaryCreationThreshold, + array, + info, + key, + collection, + list, + match, + converter, + queue, + stack, + capacity, + index, + startIndex, + value, + count, + arrayIndex, + name, + mode, + item, + options, + view, + sourceBytesToCopy, + } + + // + // The convention for this enum is using the resource name as the enum name + // + internal enum ExceptionResource + { + Argument_ImplementIComparable, + Argument_InvalidType, + Argument_InvalidArgumentForComparison, + Argument_InvalidRegistryKeyPermissionCheck, + ArgumentOutOfRange_NeedNonNegNum, + + Arg_ArrayPlusOffTooSmall, + Arg_NonZeroLowerBound, + Arg_RankMultiDimNotSupported, + Arg_RegKeyDelHive, + Arg_RegKeyStrLenBug, + Arg_RegSetStrArrNull, + Arg_RegSetMismatchedKind, + Arg_RegSubKeyAbsent, + Arg_RegSubKeyValueAbsent, + + Argument_AddingDuplicate, + Serialization_InvalidOnDeser, + Serialization_MissingKeys, + Serialization_NullKey, + Argument_InvalidArrayType, + NotSupported_KeyCollectionSet, + NotSupported_ValueCollectionSet, + ArgumentOutOfRange_SmallCapacity, + ArgumentOutOfRange_Index, + Argument_InvalidOffLen, + Argument_ItemNotExist, + ArgumentOutOfRange_Count, + ArgumentOutOfRange_InvalidThreshold, + ArgumentOutOfRange_ListInsert, + NotSupported_ReadOnlyCollection, + InvalidOperation_CannotRemoveFromStackOrQueue, + InvalidOperation_EmptyQueue, + InvalidOperation_EnumOpCantHappen, + InvalidOperation_EnumFailedVersion, + InvalidOperation_EmptyStack, + ArgumentOutOfRange_BiggerThanCollection, + InvalidOperation_EnumNotStarted, + InvalidOperation_EnumEnded, + NotSupported_SortedListNestedWrite, + InvalidOperation_NoValue, + InvalidOperation_RegRemoveSubKey, + Security_RegistryPermission, + UnauthorizedAccess_RegistryNoWrite, + ObjectDisposed_RegKeyClosed, + NotSupported_InComparableType, + Argument_InvalidRegistryOptionsCheck, + Argument_InvalidRegistryViewCheck + } +} \ No newline at end of file diff --git a/src/c#/GeneralUpdate.Core/GeneralUpdateOSS.cs b/src/c#/GeneralUpdate.Core/OSS/GeneralUpdateOSS.cs similarity index 96% rename from src/c#/GeneralUpdate.Core/GeneralUpdateOSS.cs rename to src/c#/GeneralUpdate.Core/OSS/GeneralUpdateOSS.cs index 6951ba14..6958adc2 100644 --- a/src/c#/GeneralUpdate.Core/GeneralUpdateOSS.cs +++ b/src/c#/GeneralUpdate.Core/OSS/GeneralUpdateOSS.cs @@ -1,6 +1,5 @@ 锘縰sing GeneralUpdate.Core.Domain.DO; using GeneralUpdate.Core.Domain.Enum; -using GeneralUpdate.Core.OSS; using GeneralUpdate.Core.OSS.Strategys; using GeneralUpdate.Core.OSS.Strategys.PlatformWindows; using Newtonsoft.Json; @@ -9,7 +8,7 @@ using System.IO; using System.Threading.Tasks; -namespace GeneralUpdate.Core +namespace GeneralUpdate.Core.OSS { public sealed class GeneralUpdateOSS { From 48d1f9e208ec4398e81e58bd8dcfa7bb0ae8856a Mon Sep 17 00:00:00 2001 From: "Juster.zhu" Date: Tue, 25 Oct 2022 02:10:28 +0800 Subject: [PATCH 05/11] =?UTF-8?q?=E9=80=82=E9=85=8DMAUI=20=E5=AE=89?= =?UTF-8?q?=E5=8D=93=E5=B9=B3=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generalupdate.metadata.v5 | Bin 781863 -> 749453 bytes .../generalupdate.projects.v5 | Bin 17547408 -> 20590203 bytes src/c#/GeneralUpdate.Client/MainPage.xaml.cs | 98 ++++++++++++------ src/c#/GeneralUpdate.Client/MauiProgram.cs | 3 + .../GeneralClientBootstrap.cs | 4 +- .../GeneralUpdate.ClientCore.csproj | 2 +- .../Bootstrap/AbstractBootstrap.cs | 12 ++- .../Exceptions/ThrowHelper.cs | 1 + 8 files changed, 86 insertions(+), 34 deletions(-) diff --git a/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 b/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 index 73cb84eb8e35f0916f7f6b865360b6fb33cd2e85..84f34489cbcdded0f1cf2f4b8121dfefe044a751 100644 GIT binary patch delta 1024 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 VxGpFA(Kqs+2VSgN%gj?@{{v)Z%|!qJ diff --git a/src/c#/.vs/ProjectEvaluation/generalupdate.projects.v5 b/src/c#/.vs/ProjectEvaluation/generalupdate.projects.v5 index a7ea19accb7e5d2771860d81439e481c5393b2b5..a67347e7a153694922d6e0e228a9209a32d1b539 100644 GIT binary patch delta 4363 zcmeHJX;f236lMqsVN+1Fm56{8QKJGb)T$JyR_h8bskUyQ)(ue*6)i4_ehRixf(s*} z0u}cH0>x256RItWRzjGd#Kp+NV2!>)9WcV1vF#@09Q;ftYjK&y@MG%594&yNapJ5^< zVKSy*Dnc*~p_q;t2tzn#A_B888*>nextNE~5rz3!fQ48DITTooB>D zfQP8WBRobG{=gIbiRu`lBt&USlmenOBT6AriipyjD8)o+L6nvx&x)ut@uNo%XOhBB zg{CyHbns~$Q-rH#Rr%`US;T^RxSb3dEZDPC|RUI*AKm#8l5 z9m&Fmq>iy5VN9`S-6S7YQF*bY4Vgw=)~64nMJe90wWSF%5?b@jB*~gcOP+?^Rtc>P zI6f=Yoj1oVw&%?>MRL=D23RK;xs2=H$2eJ>nr?I|k3GrT*^DLjfo^=X;4`W52F&t{ zHGWoPI&~>3Y{#673eStk462)NeoMNiinX>Au-R_pCRVyvX1R2wM3@SECuO@P~%G}3JA2?CWG?vyEh}xM8 zoJD9@M7AVWA6R`NQADJ9tn5}|J>Ru9T%wN-TQFPm4T&UHpAVOm8Cj9WZ1)ZonDHCn zD&U|Xx=iWG%9LK-%USZC2leD%Af%!GZcU;+H4m7l=3ygW<|pjQxrgfuD7?0S7*{|~ zs;TGp4m}LH7*=rm_`6(gr?K~Qws5bjT^c2L!7UHUV?pC{pYeSuA0k@DlCBigMy~he z{f`;wtKEM+`kr==nR;?&>dAT2JznGPQPs>)3I;v=Ln$0hi+5__%uWRD$P|bS%j*e` zYdN)1UUti=8~Fw6?`|%Q>K`LB9G4M#!AHCi{A+$(RyCvCIpoSJ8;mqp7`UU)wEXUH8!99#W~}Q+!TL2)W1obmg-hxM7xFW3!|*^M=5F z^7BjdvvUlCi3#V*xk>e7goCMxiOF*gk@~fB4THgfvpwU$g4H4MrwrLKukhoMSlfIH)Ha)f|6b=d1951C6jku=48pg zEqLWdnNyPOUMrHq0+Ks8iYa$Na3$?o@c7)cy7d0bp~+nlghU{DHTbrR&AwO4GZ5!Q z&f4%C{~x|HwNs_7^n5!6@v(J+oC4Pxb`z7rJgkTr3$q9uYtB6LD!7YOt#q>F#Dl;?M_C=~ii^yIUlsQ)%h$+I@BI zMr72`r4d5}qKPhsm|}@7LZmq2iYLAV5=tboB$7(z1IeY3QYxvX@u9TRN$(>WWc0C2 zGRq>XY_j`A4mstLTON7k^Qrs_D5#LaiYTg>;z}r~l+wy5tDMi2S3yOetK?1-cOam;ZioOH@*XPkA;c^6#tum4Y3+Wc { - #region Config. - - //璇ュ璞$敤浜庝富绋嬪簭瀹㈡埛绔笌鏇存柊缁勪欢杩涚▼涔嬮棿浜や簰鐢ㄧ殑瀵硅薄 - var config = new Configinfo(); - //鏈満鐨勫鎴风绋嬪簭搴旂敤鍦板潃 - config.InstallPath = @"D:\Updatetest_hub\Run_app"; - //鏇存柊鍏憡缃戦〉 - config.UpdateLogUrl = "https://www.baidu.com/"; - //瀹㈡埛绔綋鍓嶇増鏈彿 - config.ClientVersion = "1.1.1.1"; - //瀹㈡埛绔被鍨嬶細1.涓荤▼搴忓鎴风 2.鏇存柊缁勪欢 - config.AppType = AppType.ClientApp; - //鎸囧畾搴旂敤瀵嗛挜锛岀敤浜庡尯鍒嗗鎴风搴旂敤 - config.AppSecretKey = "41A54379-C7D6-4920-8768-21A3468572E5"; - //鏇存柊缁勪欢鏇存柊鍖呬笅杞藉湴鍧 - config.UpdateUrl = $"{baseUrl}/versions/{config.AppType}/{config.ClientVersion}/{config.AppSecretKey}"; - //鏇存柊绋嬪簭exe鍚嶇О - config.AppName = "AutoUpdate.Core"; - //涓荤▼搴忓鎴风exe鍚嶇О - config.MainAppName = "AutoUpdate.ClientCore"; - //涓荤▼搴忎俊鎭 - var mainVersion = "1.1.1.1"; - //涓荤▼搴忓鎴风鏇存柊鍖呬笅杞藉湴鍧 - config.MainUpdateUrl = $"{baseUrl}/versions/{AppType.ClientApp}/{mainVersion}/{config.AppSecretKey}"; - - #endregion update app. + Configinfo configinfo = null; + +#if WINDOWS + configinfo = GetWindowsConfiginfo(); +#endif + +#if ANDROID + configinfo = GetAndroidConfiginfo(); +#endif var generalClientBootstrap = new GeneralClientBootstrap(); //鍗曚釜鎴栧涓洿鏂板寘涓嬭浇閫氱煡浜嬩欢 @@ -83,17 +66,74 @@ private void Upgrade() //鏁翠釜鏇存柊杩囩▼鍑虹幇鐨勪换浣曢棶棰橀兘浼氶氳繃杩欎釜浜嬩欢閫氱煡 generalClientBootstrap.Exception += OnException; //ClientStrategy璇ユ洿鏂扮瓥鐣ュ皢瀹屾垚1.鑷姩鍗囩骇缁勪欢鑷洿鏂 2.鍚姩鏇存柊缁勪欢 3.閰嶇疆濂紺lientParameter鏃犻渶鍐嶅儚涔嬪墠鐨勭増鏈啓args鏁扮粍杩涚▼閫氳浜嗐 - generalClientBootstrap.Config(baseUrl, "B8A7FADD-386C-46B0-B283-C9F963420C7C"). + //generalClientBootstrap.Config(baseUrl, "B8A7FADD-386C-46B0-B283-C9F963420C7C"). + generalClientBootstrap.Config(configinfo). Option(UpdateOption.DownloadTimeOut, 60). Option(UpdateOption.Encoding, Encoding.Default). Option(UpdateOption.Format, Format.ZIP). //娉ㄥ叆涓涓猣unc璁╃敤鎴峰喅瀹氭槸鍚﹁烦杩囨湰娆℃洿鏂帮紝濡傛灉鏄己鍒舵洿鏂板垯涓嶇敓鏁 - SetCustomOption(ShowCustomOption). - Strategy(); + SetCustomOption(ShowCustomOption); +#if WINDOWS + generalClientBootstrap.Strategy(); +#endif +#if ANDROID + generalClientBootstrap.Strategy(); +#endif await generalClientBootstrap.LaunchTaskAsync(); }); } + /// + /// 鑾峰彇Windows骞冲彴鎵闇鐨勯厤缃弬鏁 + /// + /// + private Configinfo GetWindowsConfiginfo() + { + //璇ュ璞$敤浜庝富绋嬪簭瀹㈡埛绔笌鏇存柊缁勪欢杩涚▼涔嬮棿浜や簰鐢ㄧ殑瀵硅薄 + var config = new Configinfo(); + //鏈満鐨勫鎴风绋嬪簭搴旂敤鍦板潃 + config.InstallPath = //@"D:\Updatetest_hub\Run_app"; + //鏇存柊鍏憡缃戦〉 + config.UpdateLogUrl = "https://www.baidu.com/"; + //瀹㈡埛绔綋鍓嶇増鏈彿 + config.ClientVersion = "1.1.1.1"; + //瀹㈡埛绔被鍨嬶細1.涓荤▼搴忓鎴风 2.鏇存柊缁勪欢 + config.AppType = AppType.ClientApp; + //鎸囧畾搴旂敤瀵嗛挜锛岀敤浜庡尯鍒嗗鎴风搴旂敤 + config.AppSecretKey = "41A54379-C7D6-4920-8768-21A3468572E5"; + //鏇存柊缁勪欢鏇存柊鍖呬笅杞藉湴鍧 + config.UpdateUrl = $"{baseUrl}/versions/{config.AppType}/{config.ClientVersion}/{config.AppSecretKey}"; + //鏇存柊绋嬪簭exe鍚嶇О + config.AppName = "AutoUpdate.Core"; + //涓荤▼搴忓鎴风exe鍚嶇О + config.MainAppName = "AutoUpdate.ClientCore"; + //涓荤▼搴忎俊鎭 + var mainVersion = "1.1.1.1"; + //涓荤▼搴忓鎴风鏇存柊鍖呬笅杞藉湴鍧 + config.MainUpdateUrl = $"{baseUrl}/versions/{AppType.ClientApp}/{mainVersion}/{config.AppSecretKey}"; + return config; + } + + /// + /// 鑾峰彇Android骞冲彴鎵闇瑕佺殑鍙傛暟 + /// + /// + private Configinfo GetAndroidConfiginfo() + { + var config = new Configinfo(); + config.InstallPath = System.Threading.Thread.GetDomain().BaseDirectory; + //涓荤▼搴忓鎴风褰撳墠鐗堟湰鍙 + config.ClientVersion = VersionTracking.Default.CurrentVersion.ToString(); + config.AppType = AppType.ClientApp; + config.AppSecretKey = "41A54379-C7D6-4920-8768-21A3468572E5"; + //涓荤▼搴忓鎴风exe鍚嶇О + config.MainAppName = "GeneralUpdate.ClientCore"; + //涓荤▼搴忎俊鎭 + var mainVersion = "1.1.1.1"; + config.MainUpdateUrl = $"{baseUrl}/versions/{AppType.ClientApp}/{mainVersion}/{config.AppSecretKey}"; + return config; + } + /// /// 璁╃敤鎴峰喅瀹氭槸鍚﹁烦杩囨湰娆℃洿鏂 /// diff --git a/src/c#/GeneralUpdate.Client/MauiProgram.cs b/src/c#/GeneralUpdate.Client/MauiProgram.cs index 886c0846..09367971 100644 --- a/src/c#/GeneralUpdate.Client/MauiProgram.cs +++ b/src/c#/GeneralUpdate.Client/MauiProgram.cs @@ -11,6 +11,9 @@ public static MauiApp CreateMauiApp() { fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold"); + }).ConfigureEssentials(essentials => + { + essentials.UseVersionTracking(); }); return builder.Build(); diff --git a/src/c#/GeneralUpdate.ClientCore/GeneralClientBootstrap.cs b/src/c#/GeneralUpdate.ClientCore/GeneralClientBootstrap.cs index 02510442..f8ec4c29 100644 --- a/src/c#/GeneralUpdate.ClientCore/GeneralClientBootstrap.cs +++ b/src/c#/GeneralUpdate.ClientCore/GeneralClientBootstrap.cs @@ -62,7 +62,7 @@ private async Task BaseLaunch() } /// - /// Configure server address . + /// Configure server address (Recommended Windows,Linux,Mac). /// /// Remote server address. /// The updater name does not need to contain an extension. @@ -96,7 +96,7 @@ public GeneralClientBootstrap Config(string url,string appSecretKey, string appN } /// - /// Custom Configuration. + /// Custom Configuration (Recommended : All platforms). /// /// /// diff --git a/src/c#/GeneralUpdate.ClientCore/GeneralUpdate.ClientCore.csproj b/src/c#/GeneralUpdate.ClientCore/GeneralUpdate.ClientCore.csproj index e5f375e4..9a1ee1d9 100644 --- a/src/c#/GeneralUpdate.ClientCore/GeneralUpdate.ClientCore.csproj +++ b/src/c#/GeneralUpdate.ClientCore/GeneralUpdate.ClientCore.csproj @@ -11,7 +11,7 @@ GeneralUpdate128.png False False - https://github.com/WELL-E/AutoUpdater + https://github.com/JusterZhu/GeneralUpdate Copyright 漏 2022 Provides high-performance, low-loss, resume-breakpoint, version-by-version update, binary differential update, incremental update function, configuration file retention update and other features diff --git a/src/c#/GeneralUpdate.Core/Bootstrap/AbstractBootstrap.cs b/src/c#/GeneralUpdate.Core/Bootstrap/AbstractBootstrap.cs index 800da522..7f702352 100644 --- a/src/c#/GeneralUpdate.Core/Bootstrap/AbstractBootstrap.cs +++ b/src/c#/GeneralUpdate.Core/Bootstrap/AbstractBootstrap.cs @@ -52,7 +52,11 @@ public abstract class AbstractBootstrap #region Constructors - protected internal AbstractBootstrap() => this._options = new ConcurrentDictionary(); + protected internal AbstractBootstrap() + { + this._options = new ConcurrentDictionary(); + InitStrategy(); + } #endregion Constructors @@ -76,7 +80,6 @@ public virtual TBootstrap LaunchAsync() { try { - InitStrategy(); //When the upgrade stops and does not need to be updated, the client needs to be updated. Start the upgrade assistant directly. if (!Packet.IsUpgradeUpdate && Packet.IsMainUpdate) _strategy.StartApp(Packet.AppName, Packet.AppType); Packet.Format = $".{GetOption(UpdateOption.Format) ?? Format.ZIP}"; @@ -115,6 +118,11 @@ protected IStrategy InitStrategy() return _strategy; } + protected string GetPlatform() + { + return _strategy.GetPlatform(); + } + protected IStrategy ExcuteStrategy() { if(_strategy != null) _strategy.Excute(); diff --git a/src/c#/GeneralUpdate.Core/Exceptions/ThrowHelper.cs b/src/c#/GeneralUpdate.Core/Exceptions/ThrowHelper.cs index 38585344..7dd53ca8 100644 --- a/src/c#/GeneralUpdate.Core/Exceptions/ThrowHelper.cs +++ b/src/c#/GeneralUpdate.Core/Exceptions/ThrowHelper.cs @@ -15,6 +15,7 @@ public static class @ThrowHelper //internal static void ThrowWrongKeyTypeArgumentException(object key, Type targetType) //{ // throw new ArgumentException(Environment.GetResourceString("Arg_WrongType", key, targetType), "key"); + //} //internal static void ThrowWrongValueTypeArgumentException(object value, Type targetType) From b9010440dc39e0be92088d036516ad3f3f0b692d Mon Sep 17 00:00:00 2001 From: "Juster.zhu" Date: Tue, 25 Oct 2022 02:28:00 +0800 Subject: [PATCH 06/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generalupdate.metadata.v5 | Bin 749453 -> 755595 bytes .../generalupdate.projects.v5 | Bin 20590203 -> 21563317 bytes src/c#/GeneralUpdate.Client/MainPage.xaml.cs | 2 -- .../GeneralUpdate.ClientCore.csproj | 2 +- .../Bootstrap/AbstractBootstrap.cs | 7 ++----- .../GeneralUpdate.Core.csproj | 10 ++++++++-- 6 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 b/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 index 84f34489cbcdded0f1cf2f4b8121dfefe044a751..0be31e673deff79bca7b13537bf9d94c70db1e91 100644 GIT binary patch delta 1938 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.0 2.4.7.0 2.4.7.0 - 2.4.7 + 2.8.10 juster.chu Provides functions related to upgrade and update programs. GeneralUpdate.ico diff --git a/src/c#/GeneralUpdate.Core/Bootstrap/AbstractBootstrap.cs b/src/c#/GeneralUpdate.Core/Bootstrap/AbstractBootstrap.cs index 7f702352..6027480b 100644 --- a/src/c#/GeneralUpdate.Core/Bootstrap/AbstractBootstrap.cs +++ b/src/c#/GeneralUpdate.Core/Bootstrap/AbstractBootstrap.cs @@ -52,11 +52,7 @@ public abstract class AbstractBootstrap #region Constructors - protected internal AbstractBootstrap() - { - this._options = new ConcurrentDictionary(); - InitStrategy(); - } + protected internal AbstractBootstrap()=> this._options = new ConcurrentDictionary(); #endregion Constructors @@ -80,6 +76,7 @@ public virtual TBootstrap LaunchAsync() { try { + InitStrategy(); //When the upgrade stops and does not need to be updated, the client needs to be updated. Start the upgrade assistant directly. if (!Packet.IsUpgradeUpdate && Packet.IsMainUpdate) _strategy.StartApp(Packet.AppName, Packet.AppType); Packet.Format = $".{GetOption(UpdateOption.Format) ?? Format.ZIP}"; diff --git a/src/c#/GeneralUpdate.Core/GeneralUpdate.Core.csproj b/src/c#/GeneralUpdate.Core/GeneralUpdate.Core.csproj index 6004f709..41ae19d1 100644 --- a/src/c#/GeneralUpdate.Core/GeneralUpdate.Core.csproj +++ b/src/c#/GeneralUpdate.Core/GeneralUpdate.Core.csproj @@ -3,12 +3,12 @@ netstandard2.0 Library $(AssemblyName) - 4.10.13 + 4.11.19 juster.zhu juster.zhu false GeneralUpdate.ico - Snipaste_128.png + GeneralUpdate128.png False Copyright 漏 2022 This section describes how to upgrade client applications. @@ -38,6 +38,12 @@ + + + True + \ + + From 8397f915ac62d4ffb7ba46da36bf2d5ba5a34d58 Mon Sep 17 00:00:00 2001 From: "Juster.zhu" Date: Mon, 31 Oct 2022 22:39:25 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generalupdate.metadata.v5 | Bin 755595 -> 783042 bytes .../generalupdate.projects.v5 | Bin 21563317 -> 22982183 bytes .../GeneralUpdate.Differential.csproj | 12 ++++++++++-- .../GeneralUpdate.Zip.csproj | 11 +++++++++-- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 b/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 index 0be31e673deff79bca7b13537bf9d94c70db1e91..71230dfbe6e2aebbd8017ba1eddde1a7f3343fc9 100644 GIT binary patch delta 5701 zcmcIodsI}{)#r@Nz30qfU}gZ3hbTd-py8o0DJTXMi7({g3rr$|C~kV)4CA)JFO0Q z(4levsc&qX30Wh8=fIP-T8tKQV{T2q2hPvsi=e&LdM8W`B@_MO-`bKwVajA)+FM)_ z3b&jV9X=)e0I7!)J=zACI)Nwje*69s`1b@($@bkc?^8PYwnUFI z<5$TXo>;(th60ov4V36%=609RPMh7g-Ro-%+4Jn^jCw52Rgd1nLT-F|X*zye4{y|I zGa+J+{ypdF&D+w{(VuU;V_@?I+S}olv^eBG{Ckg{$U=<0Z9zk^!C-4McICisT{Djy z7SSJqrLXE?aMMboAzPzZZ39Qe7zZnwbtesYhO5&ij0+p<2#CUn-g$ddnA=8H<09W- z20ePa9h|-*QaYVdJ`=fU7Kl<0pQCmN_v$&}iVMT#Q>LX32fQ>A7TiG-ai9nqA=Aba zgnnGoxHU&hhM&%+PI%X&Q^+WyE)&3GrW@7G@A>p_6F^%Kz->Mv;7g5S8%gFsj*PLv z?tshN1hEEES#&utBvMS?*my+5ZaUIHQ9niz9yQ?@S@q@9C>k(;%zT;(-W+YUAtA$& zInb0aB870q6$mOldKV3Z5t>VZ{zAGskOa1MJoFUOY%$nkZ>L&Lyc8&|r$rF!r4xgA z&M%~mCg)svD2rVEP~~=?2|$rVqOc;l^|S(BTtlNx4@Z({lljF&l`24tBkOU&j0CX) zT1#mR3!#&L|MvwKsH~uYZs30E3c5StvZcVlG@2so5nM+WJIx{(=E#MN8Vh|@G$_F~ zAW5{;6i)<{>lClS+jD9%os9!&i_G)+>b96v7~(XD+6V(@bv;-Ugp~&Ev+)D7j}}in z!svga&dmZ%IXHZ}4bEZn!mVT)RBMokb?|Hn#bKu6Nqr92(N!kQ{U(>|VC(WRQr%~6 z6ir-TTff=6v++9+1o@a~l~lkjJ61QK9;MvdC1em2VA&A2Xjv1K>;|KbgJ~4sOpL7M zY)OHP88l0!-a12+-`EXO{@}Q#c;i*2@x|C-y6jl9&31rugl&eR!_=jP#Q$h0wjN{y z_}-$6!O?}sU#J(%%B>4@H=J~^Dp>m_i=iP0UP=&y+L(%?Yy}+qC*$VX8gaG&`des% zf#<_he~lLg0}j?~9y3bN{uZ4J!(XvTxT&+r0W5gU#Dl;Rv&QSKtF5mw6=VPcY`hfc z`I;>^9eT{T(Gc|yhHVfyE62CY?D#)eq-juP8brYSS7^8v(sQmbt{&v|9V8;2GkegN z6X=fMx025ZUJQZ)EtbUx&}RyL%hi#8vN$u|HZxu{{Ny@w1lmkN*~Ss$6E@#Xn6S}I_Wz$5@7gEW;0)@l)E5d zQ{QB9){vs|p#&8kW0VI{kph)Lf6*mc)<`-?s~y(q41-o3Um1rvwg@y;@Wmb)YaZSq z5guuyQ=sSubB@b2AFf3UsXMndqcBy0BXqC*W@Dw58VqyKQdX8si#; zb#hn3-HZ3`ulD{gMC{^)7F!6Mzhb=`2KH$hoY~3at!Y1K+_D|=s_8;Fov%-WA`qgXsH7dhYNZ-S!SU2F}321nf%>lS(XDsOPLe;{>nILmzV>wki8h~-WIk6-#_qav*^qS&&)m<7_zFt&&FfODU1tb#DWbApe@ z$&(7(a5k$HCsUw#8e1g7QgBaalfhYy!H^VwWDP4Fr#$kas_F3qEFXFv6X*}JslsnI zq|9W+CXKbE)R{}6!ZEvA#b zqD)xo4QMRuGPQp?rfVY=D2)>={6>ulBgYd=%Jnz}as?ht1QnmmF53>hIoA8qX z_g-Q}%4*~sdk{}ZRi60^t0spP7R2R%FS^)l6|N_XIjIruHE|*vZgsFGxO&Qx1Ve?G zwEbbWmOKxi+{qeXxR^!2ztUJDJo(WCLmoFf*vMmcYlD|x%C^A>T_cj zGPdCA`~p;|q3+ylY?gx=0Z_B%qc-a^k)EgFlOHpWfEocezhpXGd4aisu)VklG`MTsG+aePJ7F0&1>VNWWAQ|@JT@Mswy5Tm*TR=4mJ*RS4wz`QvM z?`|;X_30Kq%Q7zne5radxZRo!`sU-0!siy?+;1zu4>{~wpyXrQdiZi!n@)C{&xxA6 z=eMf`X*aY{)6BLhsnWK?`Yn7a_&&CMA0m$7_0!j;g^e3e(6?3{Nr!ju({<%^hjJ=y zE^$4U7z=?YPW-(bVp=6k!bzieZdCtCm@!bCt6KpPREu1~#*HSNh$n1%nMi07)E4QH zWb>GKZObw5+pj;eP3lT=C)&80$Jg~KUA%Cutm=@R`;$ZONez}uwpfEIqB zJV=u>1v*!GHmTLzP1+yK&)z4d!!%YzPXU%2Gz7#&+%iXSGeXaRQl)T{&*8?w1 J-K|_>{{c?y>U#hH delta 1775 zcmZ8hZA?>F80Os5-rn}*qb(ohYa$}b3NkR817Xk#1B8ZwZt4tZGaYU!im+@6DB?%w zf@5GRK8reqEKBxlf(f~qP9^?XGUq^(O@j%_5{D>LRAiEg?6g1~CimXlocHTI&-1?T z#oMnPY))nkdzg!fM{+UlVj36Ix|r-@Iu}!1Oy9)}*GHHgrcl|gZTIu@+Y7seJ8;j) z-$c!0Lk@!CcrYq$JV5pfzxeF@M@T86D7UjD-96_W9S)AL*wz!I;Os*~Ee^%Yt5H>> z)uAL;j=}onT&I0HbVjO2&vV04#Be!HzP)|ev9l2aI*LNCD#aZM7`6pLZ zZ?CGEuGHi6wSX_cHYc~>hpSQ|ZcP~0qA5@^dTzdj?e{@h zfXN~rte*)!j)7pxNAo;dg0fLV8%$6l&~aN@j+;3=1ouM(po2zQflCuC0+*i{T&x_O z3uzf5pRp*t-yffSf3mVq*@V&xZb#dIq`>&2G{;xqeUv`eW}$7b)`)VWOzOUW3>z70 zCJY%!3E?ImUYslB3RYXG01frpMVPB$Vd~H0hFA@LF;P5vM_D-9u1RJOwnxkX=9V%& z2c+>3g``IY8(M5~nsTRnaKp|Y7m6Bnh0N)80n^b%}gIpHH>7F_dTc&W?JZRG^vUH{>hFv}|{y+8s_w65E5+ zM7bOd4mlY8=d@<|yT95s^^JH~EXHsa3cZ>gMG+bt4y2XtUb_+7=F)-I*M-pD&K2c! zI8WT7o1P|=ju|37`v7PBB@43Wk;1;1y4r^d51Jw_rHF^9!c;4H_N0yh9b?SL5RZB=IkO|EaU#LHPZ7O?{xAu`$ zlE3@tze(x`izrmWiZMgP5t)`^Qcpp!rijn!cZJeolPyBsS;>kUI*Ju^#K8851-Sc* zWIRYAyJsF!Jxe0O?ab17CceTWM!eqfz@tN-vclWR*jy+m6VTV;W-6UxPIQj2H8>@a zkr~}3+5|YCYV>NilSWO(y5yxyY;3=~;?20fX9HS>C`lcurnij7g0xJpZA{pfEIYl~ zYlE<9)XIHSYcUU6vb+xc!r^9I_SeH*_`6NCaNIG9)5ziwwjI=g-|l#};5QU*9{e-g z8*t;LfS3~$^>V<4Hi|Z9cH6xHzl(rNbs5tYme2Mr#pbK@s=3RN>-D|4wxpLzJrj4-uzl;Q#;t diff --git a/src/c#/.vs/ProjectEvaluation/generalupdate.projects.v5 b/src/c#/.vs/ProjectEvaluation/generalupdate.projects.v5 index f68cdd08792e1728310ad324b741e87fe3e97310..589c5aa871b7beda319c3eba3e3612fd78e2cc3e 100644 GIT binary patch delta 5216 zcmd6rdsr0L8HfDztlfEdJLAmR`Y69!>0h9Cin7>Z#SjuA-0NQ}a0jDZ=+NWoZGFb?A}0r%m4q#_OJ zn1~Ey!ip?RLN;spshEa5Oven&!~@7j0SYk-4`Mdv;2}JWxtNFV;Jf%99>Jq{ z4D+!7kK_ATh#%ky{189FkMR>ciKnm#MOchtEWuClG=7Gqcm~Vxb1cWRSb^v83#`N{ z*kH$MtO4*#{0h%wEndK{@f$F#LkS#kq7*OUCHxlaQ3j3;*oc?039n!?%Hcu)3|v*nypR1HZ$YsKPE(qXutbH-3*j*b6uI;ce{40o39k4#9&u)Z-8MBM##o z{0T>J6z}5C_zRBVI8NXs8qkQp;%_*G(|8Z>;{*I1|Gn(26#+;~K8x20p{TaTA~87H;DU+`(OZiH^0zh*$uzKw?3}x)KW} z7DB8WvF^lr5DO(1Ml76IPhtjQMq&}fB8l}P7DcQ#u|CB566;5-Ke1?H1Bk^CizPOY zSRAo4M)1VjfU*P(7*{nm9EO{RGJs8TrDy0bvGUyozm6aV9Xm4z~csG2dkXd zTpF9CU7zb^Nb*%4nVw3cHCkHLFM+pBY1T`YL>cswEWRQktTr;BOP4PGg?QoMY=4v5 z8KQ}+@^UyO@JBC?)w{IkHv95C`7=}L!d7jyRqHH?z8N07mP)f!T2`XMCJA!8Mi*Qc zsr<_WhD5E|Xon?VyIxf*xN}AylWYEg02;FL8&$eXA_KE$KCuskBX|r5auGg_LW` z;r)3Mx9I*dxNzn;ENpuuZhS{@>jsfuD)D-WJ5LG4J)M%uh|?nAPy)*|QP!8$EyQ<7 z!`5rGQl=S4#WY2mEX%w?HoMY<_0soM>+vMfxI3!#N|{zDR2!mbv#@TuD|oBIeb!F~ zr0MTJFD_SUL7+t2HQFfCqGMv@a+eU;D)G1q!HbWJ{0fP;OWaf`^4rb`uSFXq;Y-en zK&u?+pcd^7a}{rtDr^BF&@KlkP!I6<^Qz%p-6X@68Z~#9=$N1u|Jz<8(`tok-dDaR zyeD@RyhGtW@8^3+hHbB_bbhErX`4zf$aLi?;jwC)@YNylG1~>Vofi4k5~ueBPu`*D zmt7QgS5`<8?NXpa4j6jq5?!`Rslq7*=v65Y5vo^k^QWqIk5Lj_qfu*wL^H!w?e#LP zQ>doBX9dr!7ThWEI*CV| z6Zu&+BHwsbcrV#5$tslsh8gGXa>{`UDG;$!sxbA^E4Z~)^?tISWVl|V1^p$O zAEkP4lxc%PHSgtng!jVUg2(MuU3NrEhAT8`8z51WTg{~yiI#sNe4TI$UvU=&&)+9_ zg~S^qZn`A$3*WYE_5Bd;8Yu0u^0Vwg>VDk$`z=<|HdlICl-3`x4AuGSsCeG9))E}# z{XdDz9yO6-xVc%JYX`qftKxYd#jk+Kfhh@OyYPx5ej#`+9h$YTY{b z^{?>1h{kebFEMeYDaXGp?^3b6=#n_p?U%%6s+4QrypHLTHpi3}eT&IaMt?@}3~!^l zq#WIfbD$K`ofkG+qIpM@7^ShlF`75^7GTMcoM_%Kqs4E^ILq7j?p2Hbws58<&KuCX zDmD5@N<;lxS2RzCFiw7cj~3j zVa*e2lrnt|rCs#B>-h&W6@2>*`QMgrF5=tP#d1fXYOvjF-}h?N&yk-)oche0W_t}+ zw5gBHyUSSKy6CwOUS}}sKbxIik^e~lMvLi>;Qzd5KX=BgmZ#j>ub`~!=W^Y}JI4ie zQ;C}*uf!xs-+=b;;EbEymz(#xlBb(#opw_^H<6Om8&9QjGdxhelfMmJwuj6VtOj`U zjV(z*-e#_abJA&)hMU^PX`OgPyMFB|c-X8j;j&9N-jBirrFFXA+V?@IHF4D~6tlV7 zr5j#Tw_Kf|K>193(qo)wrZsat>DB2p=yCsO)yi2hD6A;T`wi;fI9E=Lm`=odZj2?~ zw53Xu!>dC#CaN1Mdu!`ZZEvNkqZ0jny~oCI9jE1LSUC`s(_~GQ-sytll-9|;cuiD6 zf>yNPgRN!iwY$Et&Kl~uIwhG3wrlLd>Iu`kX*bGa>=WWX_fkDYm&FZ?cUPq>s0q{_ zYs4G7)`z=Set0W!r00>@8FVPXZJn3S6CGiBR`P`9Wl_;Hyy?oO!JZTSQm9I=Yu~ud zUw62>+Zgi7Ch}O{4WvbJ4sR2sQzjiP;SFOR80_gYGpBRiioo5@kckl<^PRCYbttb+ zPa5FzR-JaoICdWy;jr(^A&-6EWa3N9_Lro)&9!Zf+PaRy!&#*KGl@KfhqLL4wQl3S z2LrV~R5(m2Q^;dV$t4%#=Ix`?J56r){xQSu{`$!`z8I|Le!ZQ{XVu($CVQG`J(TtS J>m9FO`W4mXSN{M2 delta 742 zcmV~$1C$T|07SvJ>FTm=+qP}nw(Xxc+qQApwr$&X%`CtDGcaiUlE6WTU<4-wAqhnQ zp$S7EVF^cgA`p>CL?#MRiAHo{5R+KMCJu3lM|={HkVGUV2}wyta#E0zRHP;iX-P+V zGLVr>WF`w)$wqc^kds{GCJ%YZM}7)WkU|uu2t_GIaY|5Y(34*D zrVoATM}Gz|kU|!^2*vmflbAW>!;xI=z z$}x^}f|H!$G-o)=InHx|i(KL|SGdYGu5*K%+~PKOxXV56^MHpu;xSKn$}^txf|tDF zHE(#!JKpnwk9^`YU--&5zVm~h{Ngu%_{+bMvgBZLa5;n=QVt~t$f4yha-bYm4kw3~ zBghfuNOEL3iX2srCP$ZJ$T8(ua%?${99NDf$Cnex3FSm`VmXPNR8A%*ms7|o netstandard2.0 GeneralUpdate.ico - Snipaste_128.png + GeneralUpdate128.png False - https://github.com/WELL-E/AutoUpdater + https://github.com/JusterZhu/GeneralUpdate The binary differential update function is provided, but the configuration file update function is reserved. juster.zhu + 1.3.1 @@ -36,6 +37,13 @@ + + + True + \ + + + diff --git a/src/c#/GeneralUpdate.Zip/GeneralUpdate.Zip.csproj b/src/c#/GeneralUpdate.Zip/GeneralUpdate.Zip.csproj index 921c0c4a..67d3dec2 100644 --- a/src/c#/GeneralUpdate.Zip/GeneralUpdate.Zip.csproj +++ b/src/c#/GeneralUpdate.Zip/GeneralUpdate.Zip.csproj @@ -7,9 +7,9 @@ Decompress the compressed file with progress notification. Copyright 漏 2022 GeneralUpdate.ico - Snipaste_128.png + GeneralUpdate128.png False - 2.2.0 + 2.3.1 https://github.com/WELL-E/AutoUpdater @@ -26,6 +26,13 @@ + + + True + \ + + + From 714881f00da1738426cf19ed625834f19afb9e30 Mon Sep 17 00:00:00 2001 From: oufu99 Date: Sat, 5 Nov 2022 09:50:04 +0800 Subject: [PATCH 08/11] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=80=E6=AC=A1?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=A4=9A=E7=89=88=E6=9C=AC=E6=97=B6=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E5=87=BA=E7=8E=B0=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Strategys/PlatformWindows/WindowsStrategy.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/c#/GeneralUpdate.Core/Strategys/PlatformWindows/WindowsStrategy.cs b/src/c#/GeneralUpdate.Core/Strategys/PlatformWindows/WindowsStrategy.cs index 46452ec5..4415f25d 100644 --- a/src/c#/GeneralUpdate.Core/Strategys/PlatformWindows/WindowsStrategy.cs +++ b/src/c#/GeneralUpdate.Core/Strategys/PlatformWindows/WindowsStrategy.cs @@ -45,9 +45,9 @@ public override void Excute() var updateVersions = Packet.UpdateVersions.OrderBy(x => x.PubTime).ToList(); if (updateVersions != null && updateVersions.Count > 0) { - var patchPath = FileUtil.GetTempDirectory(PATCHS); foreach (var version in updateVersions) { + var patchPath = FileUtil.GetTempDirectory(PATCHS); var zipFilePath = $"{Packet.TempPath}{version.Name}{Packet.Format}"; var pipelineBuilder = new PipelineBuilder(new BaseContext(ProgressEventAction, ExceptionEventAction, version, zipFilePath, patchPath, Packet.InstallPath, Packet.Format, Packet.Encoding)). UseMiddleware(). From 9878d3511dd713c10e9a6f282ef003c04c3f5b77 Mon Sep 17 00:00:00 2001 From: "Juster.zhu" Date: Sun, 6 Nov 2022 22:16:21 +0800 Subject: [PATCH 09/11] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generalupdate.metadata.v5 | Bin 783042 -> 788045 bytes .../generalupdate.projects.v5 | Bin 22982183 -> 24219645 bytes .../GeneralUpdate.Core.csproj | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 b/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 index 71230dfbe6e2aebbd8017ba1eddde1a7f3343fc9..59e2cefa77fab18e62557bf89316430820041d63 100644 GIT binary patch delta 2126 zcmZvdeNa^89>;mk**)iQexS?3@*XT9?81()t4@T9f*7KZqV{4==@KGpyt$BfrjoQ= zG0jN_^*d8DxJ~cRGSYx={oLf2E+1gTfLN)}T;=LJbNnC}Q6c`o$sVQ=XU@t<>i$DXE$~ z>1n=Erxf{oMU%Xnc%47NjsI0k={P@C#3}_r-twbvk?^aVd6~|qMTWjo9UY1 zp5Hd>(bdf>3S7>zGN-FE@MxpU*%ol}$(+X4#z1{%V_kj2BlS&<3tImIZebf%U(w_u z-!tLWr0}W&2@a(~8Yi$bSIg+}*Om5UEl{y-NaXD9B@O+<`mmAkoBp%F_bR1@0etbN zNW)jZ>p}4l4!CF*(yxgOBj<|#i4YrcI+2>;w1{Nm)2sS(npoYFQ+==Dkf}j3ezejx zflGO`)acV_x+IP1K!LD(%xaVkv4XsY<#-hu5#Ph*8=4Reb zk4f0N#Ehm4PiBaCwAxh_8}jHJt`|`Wc9bg<;LlPt^j;U^Q0}4=;t8ycr%vO7o3<#X z#XSm5#f?}Rk3uj1Y_rjwD8DG;drs9TxZowXXb6XnK_BhM;=3swM-3@=k3+WMXPaDt zj^Ff3jL(%5(NZqQYcZ*ZuYIuUq=ub&%Kd2Xu&St=tz={QTv=8AID1g)+KSUEWsF*R z?5eP{IW?}RJ( z8V)DWL>#>&QV}{K*`wZSA$p|g;XR5U6FsMYY{rPU?sHOtax*J$4QFn~u)a!8#S#bQ zL~aM>$eDQXHXgMjxik&szesMZH>Bhd;ek>vhbg=|N1hN7-co^Nl;_HJJeS7v0>c9fh(2{|%{7DgCgNxJe7D#x~%6l}qx|EIA#` zNpdu*weutC)S$LXP8x}I_~!1i(b|tzqv;nZVN6(D{=0DMpAtp)Hb)w0bI8+he<7{J zhFT>Nrw&=|)>nRb(bBcsM>8TFVnoFUB&S5RTO!&yzidKfKSBZ z{Ze5RUw!Me@xwerjpmpaTYG`iW0#A}W?{`d&Z0o(e%b;`nbKJwXlm@l!OQyXsB2NC zAhbrY;O^gb2Rtq&f}*m8w;Vd86vJy)7vAlLxk|`V`^Efg!O3`z5mN_GunC zbEp`7ZY>^zRvx>Ty<==RFkj=RV=azpJQ~%Plyod3h8j|7xtNDzooX3eO-ejo%BEG| z*V#??-)+(?Sdhc-DxaSU;BQf^$PQ|m&|4J3Krx#Lco^pRXKOLv{Nwe#Ehn{}jZ@R$ zb<;di9kCpR#lzu^T9muB(%w2 zw8ab<_3P;0!U%QIc8h(pwZNkzsVo2g%d zZHOkLuUEF>+)hft^&PC}|6zrxkXbSOQdnWI;?-D@f_6u2l4EsS$EUkinn)HSor^sk zZ1jAH3XSYu3P~c{#R8Xwr)ZCTY9Roe2D)T F{|~$#!_EKz delta 1116 zcmYk3drVtp7{>dZo}P2smqO{d%B6J7IAM`ZqGra?GGJh4xjE)Uk(MbNW(cF*B6ALy zDek^%GajZBM*L$+G6yr}^OlCqWF$J{*y4r7%@{MC#y?oY7DzVZ*F&hDob%=U@%x_V zd7t;&Lo3hUC}Mm2SdfWV3NmAm$w6icG9}2=Ak%`({0Xx}XILqcQ((t>RGI8m) z&!O_`#THR#D=Sy+)n-6ChHi#FnkGCF|Yk|;ZT>7s`x=F%<+U;61mc-s{d96>D` zwsKm6Qx*RySn-NoRT0gjzaYlRL~XlLj^1)HY$rxSN+Z0viU!wGx)JVsJQKDqWvzK( zlB?Qou&`8*GfWgYm{0o^RuyZ1&4P{FrQ57V&MdRp0=}*-F9rODjPrLRTd!&@vB=eM zlnL{^I3oJW|H9uQ6g`Bo9boT-sJV-g27-E z-=1YvQPlL)N6cx2YKWZpV;3dcYj3eQd@kdo>(|B?Jo4Tknd3eBLc-7q zs)X@H>3($Pn38eiA4*@i`|KmH$9xQ*357pfmM-SwB44$Fu_2=ghesCSPxtT9;ZXs1 z?To{S8KL;7r5N5Jql}4t;%MGybmF94R(Zn+rJ9)oovG%OoOa*l&AxzdTem+jhmCq{ zMQGl19c=CRoQF=+Wr?NhXlh%Bf39Vdj+g~vE&D(q5J&-!jM7O7>64Ug_qZE%Btamz zPnU05L^>vE!z%WGE`{$*>Js~fi_hz1tW(dU+v8#v#;7hWeD-khK(9p}_{EZ;H)E?+ z8{+Zu8^528tzZRjo~JjBm^x0a$&pB<4xA8r(>s>A{zh#-6>|SOR4DOxjR|L^e*wqd BY83zg diff --git a/src/c#/.vs/ProjectEvaluation/generalupdate.projects.v5 b/src/c#/.vs/ProjectEvaluation/generalupdate.projects.v5 index 589c5aa871b7beda319c3eba3e3612fd78e2cc3e..c6b7c908930b46c6ee824ced60a528dd42859c32 100644 GIT binary patch delta 2825 zcmbW2d0bT26~{e;%&-kR$S#BciQ@tzN>q?dWEfDu1w@Sr%~FjmlBP{v*o0pc(_?_7 zawWFDP>HrpMU2sxHo!ni#M)@2C249B>zK4L+9p!9NfXob4a^%D`d>fu`P|RF=lssO z=ic+3`;NT-rN`IOY0o+kG;qOGxIzmZ+~5umc)|;Mc*6(2@Pj`B5QrcIV;VvbiZFyD z0+EQqbVMTtcOe#cBM$LMz&*GZGho0>%))HUK_Zf1#9Sm}9_Awj_hA7RVi8i2hQ&xn z1~QR_Y%D~hHsLXB#&_^tRA37#@i@MRC-8mz08iqF*otk~jvc5%HEK|cI_yL}8UQ?n zUD%CA?7`Fc5g2>%44Tl47CejR@MG*lD+KnV4bS5MeuAIkASAqicKi&7(190m7)S7P z`~ttkOZXLzq7%o^h2wY`C-4eR;uK`OieKY5cn#g?K`$)mLqA@}Z!v&3a2kU+gWusS zevdbC4(IU}E?@|Mz#lP;xA6}Cgm>|0T*P~LA0OZn{({S};tD>*NBArLhL3R-pWqs< zr7KXCwYAaM|JF!40v5aLkcFye6H2;xZMDB|hF(Zn&tcM-=D z-%T7x98a7;d=K%x#50Hu#50L!5zi)`L!3yQL~JCUOPowRk9ac3HL_RXo&XzL9$Vy%~H{{BH% z`Gb(0w*$n?{B7={ck@;^F>B`YVY`=Y-YPHKyzSYA6SO<^THS5G&?S9RQhp-sRTq_O z;>loN$kqg-my7!i>%}Q#8$@~T{y^0?)HB=YDqrw5&(KJ9C5fc9J4Dj0Lx#w))EC`| z=%(@;v0fo%Xs}hey6j zzp5YC_B}j)25DsC!cwr1;=}`2kB(QHY}{n=ElZ^IRXSg-QXUL)OVIYTshS3ZpeMZ6 z>z=X|y~`jnYc;W&-3Hm3+1aU)D_3-AwPKjWN1h{AHyzQGDN}B^%g48yH)$+htxBI) zt5zY%Kb>&+#XsS_X?bZu%rlS`K7GbXA^7d}tdoEE(eK^x_Bsiw(fhUJ)! zdTLL3SDkErO`brHSIFpXj5$Q6*kQ1XM%(Pm8>W zv6cji_VE;X5Z!l}i7= zB}g2ssPeaGmiveLD&53}i+!^!8J}wC=03F+1@ooiLeR7*xl3RDu};;uypz`->%{oU z>1MN=HZA$BV+y&-n;7fj^_8#fA8a={U{2K7RidRc#GuYo0?g`s^qq=xinb9SCwc?S zT2*g*-Na{#A!RK8WQOCWB>7IDSwVY`9c_=t&4)E| zxUNjuM7*G?FN@GAxG>ri@(V_w+b({6-ar!^cj&?q=f=qy%_F|_Y zPL8-@esjO7v^7MQyz5*Ym#y?-v8P=9OnzQa>-4B-OYKMj9d}WifTs zerl-f0QGcv&|tKsVz`8QHF8E-s)%ojJiCT0k!Q=O;z@D&`hi%>`4A&@I&zG(9oeUE zvgJ?`71AR;YI4P~!{tP?F3r!9cxNt|5~RvqYw3m@(R5;PMpKq+Fobo#<-L$F~(fF#j^4NA1`3^v%TApUM(BaYxbJ|3oVmU AOaK4? delta 805 zcmV~$1C$T|07SvJxw~w;F59+k+qT`$n{C^+ZQHi(X8z1O8o2EC&wzo5U<4-wAqhoj z!Vs1K0trWWA`p>CL?#MRiAHo{5R+KMCJu3lM|={HkVGUV2}wyta#9dPN>Y)UG^8aR z>B&GwGLe}qWF;Hf$w5wXk()f^B_H`IKtT#om?9LV7{w_;NlH=yOIp#IHngQ3?dd>AI?r62tnz(58um?6MWhB2HGjARs}F=H6ZIL0%9iA-WLQ<%y$rZa|!^2*vmflbAW>!;xI=z z$}x^}f|H!$G-o)=InHx|i(KL|SGdYGu5*K%+~PKOxXV56^MHpu;xSKn$}^txf|tDF zHE(#!JKpnwk9^`YU--&5zVm~h{Ngu%_{+Z$vgBZLa5;n=QVu1Dmcz(lE#S^Mmdw5Sd-;MY)n(S*{{im8;3suGm=1+D!L DOs!8v diff --git a/src/c#/GeneralUpdate.Core/GeneralUpdate.Core.csproj b/src/c#/GeneralUpdate.Core/GeneralUpdate.Core.csproj index 41ae19d1..07bdb7bc 100644 --- a/src/c#/GeneralUpdate.Core/GeneralUpdate.Core.csproj +++ b/src/c#/GeneralUpdate.Core/GeneralUpdate.Core.csproj @@ -3,7 +3,7 @@ netstandard2.0 Library $(AssemblyName) - 4.11.19 + 4.11.20 juster.zhu juster.zhu false @@ -13,7 +13,7 @@ Copyright 漏 2022 This section describes how to upgrade client applications. Provides high-performance, low-loss, resume-breakpoint, version-by-version update, binary differential update, incremental update function, configuration file retention update and other features. - https://github.com/WELL-E/AutoUpdater + https://github.com/JusterZhu/GeneralUpdate GeneralUpdate.Core GeneralUpdate.Core From 6adcfb3e60e6a65d5ab10a8549e333f41f76e280 Mon Sep 17 00:00:00 2001 From: "Juster.zhu" Date: Tue, 8 Nov 2022 01:51:18 +0800 Subject: [PATCH 10/11] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=BC=82?= =?UTF-8?q?=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generalupdate.metadata.v5 | Bin 788045 -> 784141 bytes .../generalupdate.projects.v5 | Bin 24219645 -> 26383824 bytes .../Exceptions/CustomArgs/ExceptionArgs.cs | 12 ++++ .../CustomArgs/PatchDirtyExceptionArgs.cs | 24 ++++++++ .../CustomException/GeneralUpdateException.cs | 52 ++++++++++++++++++ 5 files changed, 88 insertions(+) create mode 100644 src/c#/GeneralUpdate.Core/Exceptions/CustomArgs/ExceptionArgs.cs create mode 100644 src/c#/GeneralUpdate.Core/Exceptions/CustomArgs/PatchDirtyExceptionArgs.cs create mode 100644 src/c#/GeneralUpdate.Core/Exceptions/CustomException/GeneralUpdateException.cs diff --git a/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 b/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 index 59e2cefa77fab18e62557bf89316430820041d63..ecb44387672fe8dcb131743988b68405af4183d9 100644 GIT binary patch delta 1472 zcmZ{iZA@Eb6vufk?Y+16P${L9@FJx{2cueGFxHtlC@l;PV<0l-)s^d@j)UB5_yoYLBa(IA0&zkL{Q)EA2h_p@x?oeO+}{d z6(^*?WU8txw3w=fXpm9)YMZk=;P!U;ZI+k)0k0=^U>m0Sv{>l3#r~Ro9e&%0BvoQ9 zt}++yG>y_=Yb?JZC2{?m%ZzRQ5M>MhleN`30&Oo^-M&C?EH7!$qA^-j5+Ev+9G#8b?T&ymc1#PIcMV9|nOqDxWy$#Ck{~GmF)AsC4LIYFm7?kcnH;Yz2@3VY zQ+UsS*IlxwB9&PWRN9Qrc6Y$*Yx8!w+#Tbzy%rq!O>T;)WIwF3nV$Gx&5llQtD`fj ziJLWb|JHnvHe*r>Yi4f5;aCoz5w_RuLVG!Icw(98apAVGiaA!;kJ%?#4zKKiMB)hR ztLw$A6~QDYr?BWt?l7Kv7WA0+r!a)68c4%B4_ks$FR?N-ltBuq4bN&H3!kgV$M}1~ z68@4%kx)78!Gh;FCC*tmIUo0N)tO1pRUU77xU@(QWd@RuQ`>+S{eKBAg0p3CgdD@^ z5PK;6!qG>WnqDkVgIZK2u(f!8U3iVu;QX3k!qHVBlkCI!0QWTZ$sp;%ac~e~$Ju3a z5U<%89=+wj6E}6y7=FH9gUx#2vGIHv`3mvB&0Xe9v+fIE?zna9^9>jt=QTH+i)vK{G?DqkENl#Oq3G_^<)Aq*XFsi#iL(VRk+J zrlg%#&Z|N3s^eh;}Z)Tugi_K>tJBe`&MF<5Yj=b}`Zc(Jf0z*=l+#uKY=L*Q!hhiQj;PSA>t|VOzE#1g!eLhR-}GE;jLJ*uR$|GB3> delta 1893 zcmZuxX-rgC6z1N?y!U1f%d9K|f{HAHAh=r;p}2s6MW|Y>R;t#WMQ};AP-z^sMyY0$ z&(@|wNz>R^E4Jp*Qk3eCCS4+G6Dz4pf7pc@tt&ND>798vqUmJbpL@Uao$s9Q+_US( z@E>=kvK_U|#l)YxnB-#qE@p5s*~JtWQ(eq>oSCe*Sr#k~Ig1A|?1@n$+$DwM>qAJ< zF5NRZ8EP37X-B$E;|wexsS1t5Iuo}W?=+n%btYU?-$mL<9BAjHvNHX2QiH*cc!g%My+})vCt-7q zA-+CZkY-A>pB3QjT4f?qGGw#1$)6T6w!%FqXBOU-Q$M<+ZyHjxV*@B(L31n}KvN9OaQ{9a2GIec^v{Wk z+`+|8&6+?{IdVtRSnSS}hrpafThVAWh2!rYmZ)V6qkYVa#`i(osePD2k(|xZEvQSQ zcu#pr^6dKAJiz^4&oC6E3HGdBLyo)SeyY3fPK1^-f?na+^Ad%_JerExJN-o7;M|FY zV?>BGot)^ zPJ|#cMzZ3CWWnSaZoN-6Ig*&dJ}U~bMv<}|#Y~=l&HB}1M)u!eN-@Q&Ybn*cq|J#7=-iP5E)PV?WGX%&#obe9ot+~S1r`kOP z4XxbZOQ}CAUv!#r?*&g_r&_MpwyBjTB15KZlyvc6&&Y}GlcD%Zi#6uo)T=7;nuL|p zh4{K8nuCG+Wd#M@reLJzEiC4o&^|U}>lNqQ3Zs za*D=jBNd6otm0A$S3C+-xC0)CUfrTvbh?qF9-j$1hpaQ9+(vKURW}buVW~X6egFls z={om>SX$@d?$aQM{83jfgnk+)%r8gtUAX`c>*T@sAYP3FJXS-mm@y;=4}&ehh+n$Xf4~Q z(#Aqj;V|0mE6S_B-MiF_ixRlC#Yt6uFdw5NZR~Ms;JDIE11*u2%e{yQfhhaVUgf6= z#Cgu*y&O1WP;8dSi7UOBFo8+_rMI$=rS1UD48aABA}!TXtG$Rp0 z8P3*>U>imt5+`{L% zmF3*V?cBkg+{G98B6m~eOMIEH@Kx^NUhbpD{jA_?e4PjQ2H)gCzQwm$$#?iJ-{bo{ z#KWxO2mFvn_z^$mC;XI0d5p*T8Bg#ePqCUc{G4C#OMb<#`3+C=TYkqg{GLDXEPv!V z*77I*%=7$(zw!bv@;6@M@BD+8`6sUwKmhTD_(AGGZh%-I{*VAjAfzrN2vQFc45<&f z5fTDv0BHzm1PO&ShBSfP1ZfJn84?C*25Amy0ci8JSu5CM*BOK43CGUj%%-D zcB@>p*QZaore=|<4r!huN`u-iWI~K0ZGBi_wxU4nQX;)tk%Bccp9(+7M-IDA`#SZSE~z8XBdS z)K2Ci#uM(5YGx}{W#yjq8v7AFU7LL>7lR|s{BfU_l^AnvTxdFqb{R^oS=ucvz!YeB zris6La!o~>Fzx-O3GjSZyKU}dXtudi5Oc7kRZFY3xHcU-JYT)RmTl{THEVSS4g~J5 z%HD*%+w0<>Rm(dv9Q%CLr0kwbl)Xh|7PJ)L)Ag#c!j=2z?&<|R8LMqOS;k%VC->v)~`wnx|{N3v(C93Bxo@yPesbz!2`R9>jH=rP51esiobca%A4>k&F_ zjVw29^|?V?L+G?Mvb<<(EbFv2gic#S=(IJ27j5;(KhqWqywa$!8Ij(um+oOgn8m=~k<$Tf^MlH82e=Wa$DVHcy#(iKihN1H{9U6eMG+>|!v zE=n75b>_0rL6K&X8`FA{8`Cp_uv!T}R2hdg?m@L4syuFS%p91A_E_tvIawcZSf`I# zwNnN7qeQ7K42*-~9@Il=8;&+}Y+DqKY^+s^EfrZ<=N{A|OGV8h^C|Sc&`(x9w*bPF t!yPjsv_*+iT~~qbJG%$YD^6VFd2{*tH-%x^f7eyco5HAiZI4VS_zR@eH^2Y@ delta 862 zcmV~$1C$T|07SvJx$d%U+qP}nwymEx+qP}nwrv|%&0JW0DllmNv4BB{U<4-wAqhoj z!Vs2l1Q1AgA`p>CL?#MRiAHo{5R+KMCJu3lM|={HkVGUV2}wyta#E0zRHP;iX-P+V zGLVr>WF`w)$wqc^kds{GCJ%YZM}7)WkU|uu2t_GIaY|5Y(34*D zrVoATM}Gz|kU|iIm*v%gHvXA{7;2?)M%n^=q zjN_c(B&Rsd8P0N!^IYH}m$=Lou5yj*+~6j+xXm5za*z8w;31EA%oCpSjOV=IC9inR z8{YDc_k7?ZpZLrdzVeOl{NN|Q_{|@J_{+bMvgBZLa5;n=QVu1Dmcz(l<#2L<94LpE zBghfuNOEL3iX2srCP$ZJ$T8(ua%?${99NDf$Cnex3FSm`VmXPNR8A%*ms7|o + /// Exception of GeneralUpdate framework. + /// + [Serializable] + public sealed class GeneralUpdateException : Exception, ISerializable + where TExceptionArgs : Exception + { + private const String c_args = "Args"; + private readonly TExceptionArgs m_args; + + public TExceptionArgs Args { get { return m_args; } } + + public GeneralUpdateException(String message = null, Exception innerException = null) : this(null, message, innerException) { } + + public GeneralUpdateException(TExceptionArgs args, String message = null, Exception innerException = null) : base(message, innerException) => m_args = args; + + [SecurityPermission(SecurityAction.LinkDemand,Flags =SecurityPermissionFlag.SerializationFormatter)] + private GeneralUpdateException(SerializationInfo info, StreamingContext context) : base(info, context) => m_args = (TExceptionArgs)info.GetValue(c_args,typeof(TExceptionArgs)); + + [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.SerializationFormatter)] + public override void GetObjectData(SerializationInfo info, StreamingContext context) + { + info.AddValue(c_args, typeof(TExceptionArgs)); + base.GetObjectData(info, context); + } + + public override string Message + { + get { + String baseMsg = base.Message; + return (m_args == null)? baseMsg : $"{baseMsg}({m_args.Message})"; + } + } + + public override bool Equals(object obj) + { + GeneralUpdateException other = obj as GeneralUpdateException; + if (other == null) return false; + return Object.Equals(m_args,other.m_args) && base.Equals(obj); + } + + public override int GetHashCode()=> base.GetHashCode(); + } +} From f6707d7c5d91c27cba9cd70082555bd31136b82e Mon Sep 17 00:00:00 2001 From: xiawei-Desktop Date: Sat, 12 Nov 2022 20:30:05 +0800 Subject: [PATCH 11/11] =?UTF-8?q?=E9=BA=92=E9=BA=9FV10=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E9=80=9A=E8=BF=87=20(KylinV10=20system=20tes?= =?UTF-8?q?t=20passed)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ README_en.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/README.md b/README.md index e0210879..f7a8b7e5 100644 --- a/README.md +++ b/README.md @@ -76,3 +76,5 @@ GeneralUpdate瀵撴剰涓洪氱敤鏇存柊鍔涜嚧浜庢垚涓哄叏骞冲彴鏇存柊缁勪欢銆 | iOS | 鏆備笉鏀寔 | | Android | 鏆備笉鏀寔 | | 鏍戣帗娲(IoT) | 寰呴獙璇 | +| 楹掗簾V10(椋炶吘S2500) | 鏀寔 | +| 楹掗簾V10(x64) | 鏀寔 | diff --git a/README_en.md b/README_en.md index 8bbdaa03..ba98d71d 100644 --- a/README_en.md +++ b/README_en.md @@ -68,3 +68,5 @@ GeneralUpdate means that the general update is committed to becoming a full-plat | iOS | Not currently supported | | Android | Not currently supported | | raspberry pie | pending verification | +| Kylin V10 (FT-S2500) | yes | +| Kylin V10 (x64) | yes |