From a18fa805629279c2b295a1e7f7d356b0460e02fb Mon Sep 17 00:00:00 2001 From: "Juster.zhu" Date: Fri, 7 Oct 2022 14:10:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0zip=E6=BC=94=E7=A4=BA?= =?UTF-8?q?=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generalupdate.metadata.v5 | Bin 784045 -> 780079 bytes .../generalupdate.projects.v5 | Bin 4280633 -> 6118872 bytes src/c#/GeneralUpdate.Client/MainPage.xaml.cs | 50 +++---- .../GeneralClientBootstrap.cs | 19 +++ src/c#/TestZIP/TestZIP.csproj | 4 + src/c#/TestZIP/UnitTest1.cs | 123 +++++++----------- 6 files changed, 89 insertions(+), 107 deletions(-) diff --git a/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 b/src/c#/.vs/ProjectEvaluation/generalupdate.metadata.v5 index 8ea0b844c8115e68ac194283c4e8abea766492e2..d0155d55df361baf21c81fd3b0efaf2f9866639e 100644 GIT binary patch delta 1320 zcmZ8ge@s<%6zBVX+;`vi0Po$GLJv@WW#(gm?}-8;#)}_fu6)3hRDe0C$-*-i=?(Y3;=X}mNpL5R6 zJu{U$bS0H-Ze;-`UPFKx1I!d)<^Yod%o1R7fLVtbKk)OC{G^Z&Ic-h4cXft0zd#tD zm~z#c*PR$0GY#X5{k)g$R^3#Fr~finIW`5OGuLK#GCcX-LSYQRJ!@WtnRK%WEq)3| zdq01fd7&(oyoQMobSKKuYPByDwtL)yBQq=>31hqscjtIId~RB!j;=MM{}(R9KF;?d z{|3)Omxo2Fz9JLKCU}@OH^G-PT&N*=Dw*(k>Aqr$oi37>ZGS z&#gnnP2L5ElXBpH*PM(v6N|vuG_PbI!F}FRj;)W8g4iswYtgfOlQF1UtgG4P_%XH* zA9qP&+LPub@iBC7N+|Cpq;s`roivaMVTvcrjkMy7qdokCCh~h5Ssr=b)ViEiZzu7;u3o3tRtW z8??qKx^6;lIK^NzmbT$i9396wPS303%Mwv_OYHu#k&3m^1PWz%t%97Gd5WHeZ3Wp- zkVf0pUSBwD4w4}nEFCOlol-)(w?Tq zkWULv_t#yM_v5N8m7?&r6a~LUOjn~Cobc62nV5D`Sa8E7tQ1$9EIza(h+Sw456X=m zmQCoamn?YSB@&Gu(T&eV$(ZYuTStWnu$&eh4s1rEQ*FP_o_ zdDH5+b-U!DzkeNTUp0uc2g!w&P8z}WJ@g}fXr_Ptw%WICRBTenmanHR7pQD^-q%Xi zUTCK+MkO#_pp(%8D}M@GYy_ealXjznBDvBrP^d>Z1YW*m{7=OC9y)1t6mQ<9M;HYT zeYfCO29Z5ZE-j*;>LMIPu2P*175G`q@zw|I`C)q1?I=IDLuai5j|{99tR`|N4URmu lTqh)f!wr!S({@dgY*e=FF4ozgZ5@t(jD2G#@GABaJjOA9TN6S*xA>&L8J|_uO-SzjJ=y zj-vxVxjvALT}8Y^{Hd2PFA4DytCvV#B72GACFs3%0#9QSB+>85BRXjzmkN)rL}=#IgH|)`*m3zQni6Q;EB`wce;HCKF)0 zrYXYpzxHvUfGL<5%k$AtZ|#rd5E6~IuW6-Zs)$$J^kUDw7l zoT5Ap$8M2Ww49*22~HO&1o6=krh|u=pyI7dnhWb)(s1Q+X~(lKz9t|$KC-9x)mNy! zhs5|UZ4zkzK!X!dH;%>jgqlNn0c@et#4rBPsu(WZ(IyMJ6`b}^IS9fgWMxXD%npWQ zbC=bDdw*&UQitMlmWP&eG#Q7+vjl{O3#6~=JO{38v@hxm8vU3|&ux;6no~3!)mLaN z?v7`@vBJj3zqwP&P;2co>&*J=0xf#xFsDg(G+e1nM_G)>``$gRA3T+k)!1=IOClJ0 zPjljID$m2tzDgJl^%Cz`(?pB@fvL}Dk2!353@_YwwGE^QOJp`WbjsXCGsWYdP&5;s zV&)r(q!gZjT~T~Gb_^y_##4W5dkI?mipgJ}!6bOPX@;8Jmd)!$!R2UOFO{S6zP5!d z!Er^rlz&T#!zU?RAq^&MWf-7Jsc3qj{Z3vFtlNHBEXd_2SsWHevHwD}+OT$O?}Xs1 zk7fTfx=}bz%<%OD(Or2ApNxj*Wf^}n{w{h=3Gi9wkCFo4XVIgLvmtyP`PURwT%&fQ zLgE!vG%e^Fi!&!F4-)%opdg!r;YpMfYZ_<|s+7d${k;4`QyZuG9-bTyWs5ZlhvWD> z49XW0w2rbq>V^}6tHp4O!Zw!BP@{i5A4l+Vhgb~TQt3%4Ah3pz@G3&81N5)lM>FsS z;V!tkNSN=8Tk@5p6KT?aG4SPAjGk3XvQsoAOm|5}&3P-Ux6$*}p(oSRlv} zXqDl^M81RM`*|`%ulsWKHpgI#`P0R7d;2Sw-Py(&OaXJcS^!`CVI?lZ6`#Lo7VBl zXkBZ{_D3Ux-4@#rjOKm77iZ~F&Jq4-sId2ctrk&3oV`Nz2e)(m0ae&O(es1HF1B-p X*_#iI@<*Al`coyB-NwVyJWKrt5W}M1 diff --git a/src/c#/.vs/ProjectEvaluation/generalupdate.projects.v5 b/src/c#/.vs/ProjectEvaluation/generalupdate.projects.v5 index fe4868496333cd405f0a721e70747f682518c176..bdc3730b8c7eab312d7bb4d5328fce9b04dd10db 100644 GIT binary patch delta 4139 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 S?!&^TFH0+H8{hk%#qSvooiB_4 diff --git a/src/c#/GeneralUpdate.Client/MainPage.xaml.cs b/src/c#/GeneralUpdate.Client/MainPage.xaml.cs index fa47991..454bbf4 100644 --- a/src/c#/GeneralUpdate.Client/MainPage.xaml.cs +++ b/src/c#/GeneralUpdate.Client/MainPage.xaml.cs @@ -40,46 +40,32 @@ namespace GeneralUpdate.Client { Task.Run(async () => { - //主程序信息 - var mainVersion = "1.1.1.1"; - - #region update app. + #region Config. //该对象用于主程序客户端与更新组件进程之间交互用的对象 - //clientParameter = new ClientParameter(); - + var config = new Configinfo(); //本机的客户端程序应用地址 - //clientParameter.InstallPath = @"D:\Updatetest_hub\Run_app"; + config.InstallPath = @"D:\Updatetest_hub\Run_app"; //更新公告网页 - //clientParameter.UpdateLogUrl = "https://www.baidu.com/"; - - //clientParameter.ClientVersion = "9.1.3.0";//"1.1.1.1"; - - ////客户端类型:1.主程序客户端 2.更新组件 - //clientParameter.AppType = (int)AppType.UpdateApp; - //clientParameter.AppSecretKey = "41A54379-C7D6-4920-8768-21A3468572E5"; - ////更新组件请求验证更新的服务端地址 - //clientParameter.ValidateUrl = $"{baseUrl}/validate/{ clientParameter.AppType }/{ clientParameter.ClientVersion }/{clientParameter.AppSecretKey}"; - ////更新组件更新包下载地址 - //clientParameter.UpdateUrl = $"{baseUrl}/versions/{ clientParameter.AppType }/{ clientParameter.ClientVersion }/{clientParameter.AppSecretKey}"; - ////更新程序exe名称 - //clientParameter.AppName = "AutoUpdate.Core"; + config.UpdateLogUrl = "https://www.baidu.com/"; + //客户端当前版本号 + config.ClientVersion = "1.1.1.1"; + //客户端类型:1.主程序客户端 2.更新组件 + config.AppType = AppType.ClientApp; //指定应用密钥,用于区分客户端应用 - - #endregion update app. - - #region main app. - - //更新组件的版本号 - //clientParameter.ClientVersion = "1.1.1"; + config.AppSecretKey = "41A54379-C7D6-4920-8768-21A3468572E5"; + //更新组件更新包下载地址 + config.UpdateUrl = $"{baseUrl}/versions/{config.AppType}/{config.ClientVersion}/{config.AppSecretKey}"; + //更新程序exe名称 + config.AppName = "AutoUpdate.Core"; //主程序客户端exe名称 - //clientParameter.MainAppName = "AutoUpdate.ClientCore"; - //主程序客户端请求验证更新的服务端地址 - //clientParameter.MainValidateUrl = $"{baseUrl}/validate/{ (int)AppType.ClientApp }/{ mainVersion }/{clientParameter.AppSecretKey}"; + config.MainAppName = "AutoUpdate.ClientCore"; + //主程序信息 + var mainVersion = "1.1.1.1"; //主程序客户端更新包下载地址 - //clientParameter.MainUpdateUrl = $"{baseUrl}/versions/{ (int)AppType.ClientApp }/{ mainVersion }/{clientParameter.AppSecretKey}"; + config.MainUpdateUrl = $"{baseUrl}/versions/{AppType.ClientApp}/{mainVersion}/{config.AppSecretKey}"; - #endregion main app. + #endregion update app. var generalClientBootstrap = new GeneralClientBootstrap(); //单个或多个更新包下载通知事件 diff --git a/src/c#/GeneralUpdate.ClientCore/GeneralClientBootstrap.cs b/src/c#/GeneralUpdate.ClientCore/GeneralClientBootstrap.cs index f5888bc..227568a 100644 --- a/src/c#/GeneralUpdate.ClientCore/GeneralClientBootstrap.cs +++ b/src/c#/GeneralUpdate.ClientCore/GeneralClientBootstrap.cs @@ -23,12 +23,20 @@ namespace GeneralUpdate.ClientCore #region Public Methods + /// + /// Start the update. + /// + /// public override GeneralClientBootstrap LaunchAsync() { Task.Run(() => BaseLaunch()); return this; } + /// + /// Start the update. + /// + /// public Task LaunchTaskAsync() => BaseLaunch(); private async Task BaseLaunch() @@ -87,6 +95,11 @@ namespace GeneralUpdate.ClientCore } } + /// + /// Custom Configuration. + /// + /// + /// public GeneralClientBootstrap Config(Configinfo info) { Packet.AppType = info.AppType; @@ -113,6 +126,12 @@ namespace GeneralUpdate.ClientCore return this; } + /// + /// Let the user decide whether to update in the state of non-mandatory update. + /// + /// Custom funcion ,Custom actions to let users decide whether to update. true update false do not update . + /// + /// public GeneralClientBootstrap SetCustomOption(Func> func) { if (func == null) throw new ArgumentNullException(nameof(func)); diff --git a/src/c#/TestZIP/TestZIP.csproj b/src/c#/TestZIP/TestZIP.csproj index 51e6422..37e881d 100644 --- a/src/c#/TestZIP/TestZIP.csproj +++ b/src/c#/TestZIP/TestZIP.csproj @@ -16,4 +16,8 @@ + + + + diff --git a/src/c#/TestZIP/UnitTest1.cs b/src/c#/TestZIP/UnitTest1.cs index 86da164..6941ee1 100644 --- a/src/c#/TestZIP/UnitTest1.cs +++ b/src/c#/TestZIP/UnitTest1.cs @@ -1,3 +1,5 @@ +using GeneralUpdate.Zip; +using GeneralUpdate.Zip.Factory; using System.Diagnostics; namespace TestZIP @@ -6,84 +8,55 @@ namespace TestZIP { [Test] - public void Test1() + public void CreatZip() { + try + { + string sourcePath = "D:\\Updatetest_hub\\Run_app"; + string destinationPath = "D:\\Updatetest_hub"; + string name = "testpacket.zip"; + var factory = new GeneralZipFactory(); + factory.CompressProgress += (a,e) => + { + Console.WriteLine($"fileName:{e.Name},fileSize:{e.Size},fileIndex:{e.Index},filePath:{e.Path},fileCount:{e.Count}"); + }; + factory.Completed += (a,e) => + { + Console.WriteLine($"IsCompleted:{ e.IsCompleted }"); + }; + factory.CreatefOperate(OperationType.GZip, name, sourcePath, destinationPath,false,System.Text.Encoding.Default). + CreatZip(); + } + catch + { + Assert.Fail(); + } Assert.Pass(); } - //#region GeneralUpdate Zip - - ///// - ///// Create Zip - ///// - ///// - ///// - //private void BtnCreateZip_Click(object sender, RoutedEventArgs e) - //{ - // try - // { - // var factory = new GeneralZipFactory(); - // factory.CompressProgress += OnCompressProgress; - // //Compress all files in this pathD:\Updatetest_hub\Run_app D:\Updatetest_hub - // factory.CreatefOperate(GetOperationType(), TxtZipPath.Text, TxtUnZipPath.Text). - // CreatZip(); - // } - // catch (Exception ex) - // { - // MessageBox.Show($"CreatZip error : {ex.Message} "); - // } - //} - - ///// - ///// UnZip - ///// - ///// - ///// - //private void BtnUnZip_Click(object sender, RoutedEventArgs e) - //{ - // try - // { - // var factory = new GeneralZipFactory(); - // factory.UnZipProgress += OnUnZipProgress; - // factory.Completed += OnCompleted; - // //D:\Updatetest_hub\Run_app\1.zip , D:\Updatetest_hub - // factory.CreatefOperate(GetOperationType(), TxtZipPath.Text, TxtUnZipPath.Text, true). - // UnZip(); - // } - // catch (Exception ex) - // { - // MessageBox.Show($"UnZip error : {ex.Message} "); - // } - //} - - //private void OnCompleted(object sender, BaseCompleteEventArgs e) - //{ - // Debug.WriteLine($"IsCompleted {e.IsCompleted}."); - //} - - //private OperationType GetOperationType() - //{ - // OperationType operationType = 0; - // var item = CmbxZipFormat.SelectedItem as ComboBoxItem; - // switch (item.Content) - // { - // case "ZIP": - // operationType = OperationType.GZip; - // break; - - // case "7z": - // operationType = OperationType.G7z; - // break; - // } - // return operationType; - //} - - //private void OnCompressProgress(object sender, BaseCompressProgressEventArgs e) - //{ Debug.WriteLine($"CompressProgress - name:{e.Name}, count:{e.Count}, index:{e.Index}, size:{e.Size}."); } - - //private void OnUnZipProgress(object sender, BaseUnZipProgressEventArgs e) - //{ Debug.WriteLine($"UnZipProgress - name:{e.Name}, count:{e.Count}, index:{e.Index}, size:{e.Size}."); } - - //#endregion GeneralUpdate Zip + [Test] + public void UnZip() + { + try + { + string sourcePath = "D:\\Updatetest_hub\\Run_app\\1.zip"; + string destinationPath = "D:\\Updatetest_hub"; + string name = "testpacket.zip"; + var factory = new GeneralZipFactory(); + factory.UnZipProgress += (a,e) => + { + Console.WriteLine($"fileName:{e.Name},fileSize:{e.Size},fileIndex:{e.Index},filePath:{e.Path},fileCount:{e.Count}"); + }; + factory.Completed += (a, e) => + { + Console.WriteLine($"IsCompleted:{e.IsCompleted}"); + }; + factory.CreatefOperate(OperationType.GZip, name, sourcePath, destinationPath, false, System.Text.Encoding.Default). + UnZip(); + } + catch (Exception ex) + { + } + } } } \ No newline at end of file -- Gitee