1111 Console . WriteLine ( "当前运行目录:" + Thread . GetDomain ( ) . BaseDirectory ) ;
1212 var configinfo = new Configinfo
1313 {
14- //configinfo. UpdateLogUrl = "https://www.baidu.com";
14+ //UpdateLogUrl = "https://www.baidu.com",
1515 ReportUrl = "http://127.0.0.1:5000/Upgrade/Report" ,
1616 UpdateUrl = "http://127.0.0.1:5000/Upgrade/Verification" ,
1717 AppName = "UpgradeSample.exe" ,
1818 MainAppName = "ClientSample.exe" ,
1919 InstallPath = Thread . GetDomain ( ) . BaseDirectory ,
20- //configinfo. Bowl = "Generalupdate.CatBowl.exe";
20+ //Bowl = "Generalupdate.CatBowl.exe",
2121 //当前客户端的版本号
2222 ClientVersion = "1.0.0.0" ,
2323 //当前升级端的版本号
2828 AppSecretKey = "dfeb5833-975e-4afb-88f1-6278ee9aeff6" ,
2929 //BlackFiles = new List<string> { "123.exe" },
3030 //BlackFormats = new List<string> { "123.dll" },
31- //BlackDirectories = new List<string> { "123 " },
31+ //SkipDirectorys = new List<string> { "logs " },
3232 //Scheme = "Bearer",
3333 //Token = "..."
3434 } ;
35- _ = await new GeneralClientBootstrap ( ) //单个或多个更新包下载通知事件
35+ _ = await new GeneralClientBootstrap ( )
3636 //单个或多个更新包下载速度、剩余下载事件、当前下载版本信息通知事件
3737 . AddListenerMultiDownloadStatistics ( OnMultiDownloadStatistics )
3838 //单个或多个更新包下载完成
4343 . AddListenerMultiDownloadError ( OnMultiDownloadError )
4444 //整个更新过程出现的任何问题都会通过这个事件通知
4545 . AddListenerException ( OnException )
46+ //服务端返回更新信息后的通知(可用于显示更新日志、版本信息等)
47+ . AddListenerUpdateInfo ( OnUpdateInfo )
48+ //更新预检回调:返回 true 跳过本次更新,返回 false 继续自动更新
49+ //(强制更新版本会忽略此回调)
50+ . AddListenerUpdatePrecheck ( OnUpdatePrecheck )
4651 . SetConfig ( configinfo )
4752 . Option ( UpdateOption . DownloadTimeOut , 60 )
4853 . Option ( UpdateOption . Encoding , Encoding . Default )
5863void OnMultiDownloadError ( object arg1 , MultiDownloadErrorEventArgs arg2 )
5964{
6065 var version = arg2 . Version as VersionInfo ;
61- Console . WriteLine ( $ "{ version . Version } { arg2 . Exception } ") ;
66+ Console . WriteLine ( $ "{ version ? . Version } { arg2 . Exception } ") ;
6267}
6368
6469void OnMultiAllDownloadCompleted ( object arg1 , MultiAllDownloadCompletedEventArgs arg2 )
@@ -69,17 +74,31 @@ void OnMultiAllDownloadCompleted(object arg1, MultiAllDownloadCompletedEventArgs
6974void OnMultiDownloadCompleted ( object arg1 , MultiDownloadCompletedEventArgs arg2 )
7075{
7176 var version = arg2 . Version as VersionInfo ;
72- Console . WriteLine ( arg2 . IsComplated ? $ "当前下载版本:{ version . Version } , 下载完成!" : $ "当前下载版本:{ version . Version } , 下载失败!") ;
77+ Console . WriteLine ( arg2 . IsComplated ? $ "当前下载版本:{ version ? . Version } , 下载完成!" : $ "当前下载版本:{ version ? . Version } , 下载失败!") ;
7378}
7479
7580void OnMultiDownloadStatistics ( object arg1 , MultiDownloadStatisticsEventArgs arg2 )
7681{
7782 var version = arg2 . Version as VersionInfo ;
7883 Console . WriteLine (
79- $ "当前下载版本:{ version . Version } ,下载速度:{ arg2 . Speed } ,剩余下载时间:{ arg2 . Remaining } ,已下载大小:{ arg2 . BytesReceived } ,总大小:{ arg2 . TotalBytesToReceive } , 进度百分比:{ arg2 . ProgressPercentage } %") ;
84+ $ "当前下载版本:{ version ? . Version } ,下载速度:{ arg2 . Speed } ,剩余下载时间:{ arg2 . Remaining } ,已下载大小:{ arg2 . BytesReceived } ,总大小:{ arg2 . TotalBytesToReceive } , 进度百分比:{ arg2 . ProgressPercentage } %") ;
8085}
8186
8287void OnException ( object arg1 , ExceptionEventArgs arg2 )
8388{
8489 Console . WriteLine ( $ "{ arg2 . Exception } ") ;
85- }
90+ }
91+
92+ void OnUpdateInfo ( object arg1 , UpdateInfoEventArgs arg2 )
93+ {
94+ // arg2.Info 包含服务端返回的完整版本信息(VersionRespDTO)
95+ Console . WriteLine ( $ "服务端返回更新信息:Code={ arg2 . Info . Code } , 版本数量={ arg2 . Info . Body ? . Count ?? 0 } ") ;
96+ }
97+
98+ bool OnUpdatePrecheck ( UpdateInfoEventArgs arg )
99+ {
100+ // 返回 true:跳过本次更新;返回 false:继续执行自动更新
101+ // 可在此处添加自定义判断逻辑,例如检查磁盘空间、询问用户是否立即更新等
102+ Console . WriteLine ( $ "更新预检:发现 { arg . Info . Body ? . Count ?? 0 } 个可用版本,继续更新...") ;
103+ return false ; // false = 继续更新
104+ }
0 commit comments