Browse Source

更新系统联调后的代码调整

Jimmy 1 year ago
parent
commit
ed9b0413a8

BIN
fis.Loader/.vs/ProjectEvaluation/fis.loader.metadata.v2


BIN
fis.Loader/.vs/ProjectEvaluation/fis.loader.projects.v2


BIN
fis.Loader/.vs/fis.Loader/DesignTimeBuild/.dtbcache.v2


BIN
fis.Loader/.vs/fis.Loader/FileContentIndex/527d431b-011c-4456-914d-598d31d246de.vsidx


BIN
fis.Loader/.vs/fis.Loader/FileContentIndex/eb21a59f-75de-42da-abb0-8ddc8d7c08fb.vsidx


+ 12 - 2
fis.Loader/Handlers/BaseHandler.cs

@@ -1,5 +1,6 @@
 
-using ProcessWrapper;
+using System.Diagnostics;
+
 namespace fis.Loader.Handlers
 {
     /// <summary>
@@ -24,7 +25,16 @@ namespace fis.Loader.Handlers
 
         protected void KillApp()
         {
-            LoaderHelper.KillProcessWithGivenName("fis");
+            var processName = "fis";
+            var processes = Process.GetProcessesByName(processName);
+            foreach (Process progress in processes)
+            {
+                if (progress.ProcessName == processName)
+                {
+                    progress.Kill();
+                    progress.WaitForExit();
+                }
+            }
         }
 
     }

+ 26 - 18
fis.Loader/Handlers/FullUpgradeHandler.cs

@@ -46,32 +46,40 @@ namespace fis.Loader.Handlers
                 Logger.WriteLine("Begin to extract");
                 using (ZipArchive archive = ZipFile.OpenRead(file))
                 {
-                    var entrys = archive.Entries;
-                    var fileDirs = entrys.Where(c => c.Name == "");
-                    var filesEntries = entrys.Where(c => c.Name != "");
-                    foreach (var dir in fileDirs)
+                    try
                     {
-                        var entrySubPath = dir.FullName.Replace(filePathToSkip, "");
-                        if (string.IsNullOrEmpty(entrySubPath))
+                        var entrys = archive.Entries;
+                        var fileDirs = entrys.Where(c => c.Name == "");
+                        var filesEntries = entrys.Where(c => c.Name != "");
+                        foreach (var dir in fileDirs)
                         {
-                            continue;
+                            var entrySubPath = dir.FullName.Replace(filePathToSkip, "");
+                            if (string.IsNullOrEmpty(entrySubPath))
+                            {
+                                continue;
+                            }
+                            string entryPath = Path.Combine(fisDir, entrySubPath);
+                            if (!Directory.Exists(entryPath))
+                            {
+                                Directory.CreateDirectory(entryPath);
+                            }
                         }
-                        string entryPath = Path.Combine(fisDir, entrySubPath);
-                        if (!Directory.Exists(entryPath))
+
+                        foreach (ZipArchiveEntry fileEntry in filesEntries)
                         {
-                            Directory.CreateDirectory(entryPath);
+                            var entrySubPath = fileEntry.FullName.Replace(filePathToSkip, "");
+                            string entryPath = Path.Combine(fisDir, entrySubPath);
+                            if (!fileEntry.Name.Contains("loader.exe"))
+                            {
+                                fileEntry.ExtractToFile(entryPath, true);
+                            }
                         }
                     }
-
-                    foreach (ZipArchiveEntry fileEntry in filesEntries)
+                    catch (Exception ex)
                     {
-                        var entrySubPath = fileEntry.FullName.Replace(filePathToSkip, "");
-                        string entryPath = Path.Combine(fisDir, entrySubPath);
-                        if (!fileEntry.Name.Contains("loader.exe"))
-                        {
-                            fileEntry.ExtractToFile(entryPath, true);
-                        }
+                        Logger.WriteLine($"Extract error {ex}");
                     }
+                   
                 }
 
                 Logger.WriteLine("End to extract");

+ 15 - 3
fis.Loader/Handlers/StartHandler.cs

@@ -1,5 +1,5 @@
-using ProcessWrapper;
-using System;
+using System;
+using System.Diagnostics;
 using System.IO;
 
 namespace fis.Loader.Handlers
@@ -16,7 +16,19 @@ namespace fis.Loader.Handlers
         internal override void Execute()
         {            
             var fileName= Path.Combine(_fisFileDir, "fis.exe"); ;
-            LoaderHelper.StartProcessDirectly(fileName);
+            var process = new Process
+            {
+                StartInfo =
+                {
+                    FileName = fileName,
+                    UseShellExecute = false,
+                    Verb = "runas",
+                    CreateNoWindow = true,
+                    RedirectStandardError = true,
+                },
+                EnableRaisingEvents = true
+            };
+            process.Start();
         }
 
         internal void ExecuteWithPath(string fileDir)

+ 1 - 1
fis.Loader/Properties/PublishProfiles/FolderProfile.pubxml.user

@@ -4,6 +4,6 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
 -->
 <Project>
   <PropertyGroup>
-    <History>True|2023-04-04T10:58:41.6724252Z;True|2023-04-04T18:35:05.7046836+08:00;True|2023-04-04T17:44:37.8374974+08:00;True|2023-03-25T10:29:30.7741020+08:00;True|2023-03-17T17:49:34.3793924+08:00;True|2023-03-17T17:40:02.4174170+08:00;True|2023-03-17T16:43:20.9800116+08:00;True|2023-03-16T22:28:33.0346010+08:00;True|2023-03-16T22:23:06.8342042+08:00;True|2023-03-16T22:21:06.5706331+08:00;True|2023-03-16T22:18:51.8888279+08:00;True|2023-03-16T21:53:28.9360253+08:00;True|2023-03-16T21:47:25.5873091+08:00;True|2023-03-16T21:42:53.1468354+08:00;True|2023-03-16T21:02:30.3296546+08:00;True|2023-03-16T20:56:49.7751516+08:00;True|2022-12-01T16:57:09.2735980+08:00;True|2022-12-01T16:26:20.9412787+08:00;True|2022-12-01T16:25:14.1261397+08:00;True|2022-12-01T16:23:50.3487072+08:00;</History>
+    <History>True|2023-04-12T11:06:06.4479182Z;True|2023-04-04T18:58:41.6724252+08:00;True|2023-04-04T18:35:05.7046836+08:00;True|2023-04-04T17:44:37.8374974+08:00;True|2023-03-25T10:29:30.7741020+08:00;True|2023-03-17T17:49:34.3793924+08:00;True|2023-03-17T17:40:02.4174170+08:00;True|2023-03-17T16:43:20.9800116+08:00;True|2023-03-16T22:28:33.0346010+08:00;True|2023-03-16T22:23:06.8342042+08:00;True|2023-03-16T22:21:06.5706331+08:00;True|2023-03-16T22:18:51.8888279+08:00;True|2023-03-16T21:53:28.9360253+08:00;True|2023-03-16T21:47:25.5873091+08:00;True|2023-03-16T21:42:53.1468354+08:00;True|2023-03-16T21:02:30.3296546+08:00;True|2023-03-16T20:56:49.7751516+08:00;True|2022-12-01T16:57:09.2735980+08:00;True|2022-12-01T16:26:20.9412787+08:00;True|2022-12-01T16:25:14.1261397+08:00;True|2022-12-01T16:23:50.3487072+08:00;</History>
   </PropertyGroup>
 </Project>

+ 0 - 6
fis.Loader/fis.Loader.csproj

@@ -11,12 +11,6 @@
 		<NoWin32Manifest>true</NoWin32Manifest>
 	</PropertyGroup>
 
-	<ItemGroup>
-	  <Reference Include="ProcessDiganosisWrapper">
-	    <HintPath>..\third_party\SmartPublisher\ProcessDiganosisWrapper.dll</HintPath>
-	  </Reference>
-	</ItemGroup>
-
 	<ItemGroup>
 		<Compile Update="Properties\Resources.Designer.cs">
 			<DesignTime>True</DesignTime>

+ 2 - 2
fis/Helpers/HttpHelper.cs

@@ -46,7 +46,7 @@ namespace fis.Helpers
 
         public static async Task DownloadFile(string url, FileInfo file)
         {
-            var response = await httpClient.GetAsync(url);
+            var response = await httpClient.GetAsync(url, HttpCompletionOption.ResponseHeadersRead);
             try
             {
                 var n = response.Content.Headers.ContentLength;
@@ -55,7 +55,7 @@ namespace fis.Helpers
                 {
                     using (stream)
                     {
-                        byte[] buffer = new byte[1024 * 512];
+                        byte[] buffer = new byte[1024 * 1024];
                         var readLength = 0;
                         int length;
                         while ((length = await stream.ReadAsync(buffer, 0, buffer.Length)) != 0)

+ 17 - 5
fis/Managers/UpgradManager.cs

@@ -28,6 +28,7 @@ namespace  fis.Managers
     {
         private UpgradeTypeEnum _currentUpdataType;
         private UpgradeUpdateTypeEnum _currentUpdateWay;
+        private string _currentVersion;
         private bool _runningFakeProgress;
         private double _fakePrgoress;
         private string _fileDownloadName;
@@ -51,12 +52,13 @@ namespace  fis.Managers
             _currentUpdataType = dataObj.UpgradeType;
                
             _currentUpdateWay= dataObj.UpgradeUpdateType;
+            _currentVersion = dataObj.NewVersion;
             var fileName = Path.GetFileName(dataObj.UpgradeCDNUrl);
             if (!Directory.Exists(_upgadeDir))
             {
                 Directory.CreateDirectory(_upgadeDir);
             }
-
+            fileName = _currentUpdateWay == UpgradeUpdateTypeEnum.Part ? "flyinsono.zip" : "fis_package.zip";
             var fileDownloadName = Path.Combine(_upgadeDir, fileName);
 
             HttpHelper.OnDownloadProgressChanged += OnDowloadProgressChanged;
@@ -75,6 +77,7 @@ namespace  fis.Managers
         {
             if (e)
             {
+                VersionInfo.Instance.UpdateVersion(_currentVersion);
                 AppRestartHelper.RestartToUpgrade();
                 var args = new List<string>(){
                 "1.0",
@@ -119,16 +122,17 @@ namespace  fis.Managers
         private string _flyinsonoVersionStr;
         private string _shellVersionStr;
         private bool _noVersion;
+        private string _versionFilePath;
 
         private VersionInfo()
         {
-            var versionFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Versions.txt");
-            if (!File.Exists(versionFilePath))
+            _versionFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Versions.txt");
+            if (!File.Exists(_versionFilePath))
             {
                 _noVersion = true;
                 return;
             }
-            var versionLines = File.ReadAllLines(versionFilePath);
+            var versionLines = File.ReadAllLines(_versionFilePath);
             if (versionLines.Length >= 3)
             {
                 _flyinsonoVersionStr = versionLines[1].Split("+")[0];
@@ -176,8 +180,16 @@ namespace  fis.Managers
 
         }
 
+        public void UpdateVersion(string newVersion)
+        {
+            var versionStr = File.ReadAllText(_versionFilePath);
+            var newFullversion = $"Flyinsono={newVersion}";
+            var newVersionStrToWrited=versionStr.Replace(_flyinsonoVersionStr, newFullversion);
+            File.WriteAllText(_versionFilePath, newVersionStrToWrited);
+        }
+
         /// <summary>
-        /// 
+        /// 版本信息实例
         /// </summary>
         public static VersionInfo Instance
         {