Browse Source

Refactor fis loader to avoid virus alert

Jimmy 1 year ago
parent
commit
f12698635d

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/bc754dcd-101a-40a6-b85e-e35a413c1be6.vsidx


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


BIN
fis.Loader/.vs/fis.Loader/v17/.suo


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

@@ -1,5 +1,5 @@
 
-using System.Diagnostics;
+using FisTools;
 
 namespace fis.Loader.Handlers
 {
@@ -25,16 +25,7 @@ namespace fis.Loader.Handlers
 
         protected void KillApp()
         {
-            var processName = "fis";
-            var processes = Process.GetProcessesByName(processName);
-            foreach (Process progress in processes)
-            {
-                if (progress.ProcessName == processName)
-                {
-                    progress.Kill();
-                    progress.WaitForExit();
-                }
-            }
+            ToolManager.Instance.LoaderCenter.KillProcessWithGivenName("fis");
         }
 
     }

+ 2 - 85
fis.Loader/Handlers/FullUpgradeHandler.cs

@@ -1,11 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.IO.Compression;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
+using FisTools;
 namespace fis.Loader.Handlers
 {
     internal class FullUpgradeHandler : BaseHandler
@@ -15,83 +8,7 @@ namespace fis.Loader.Handlers
         }
         internal override void Execute()
         {
-            Logger.WriteLine($"Full upgrade");
-            KillApp();
-            var currentDir = AppDomain.CurrentDomain.BaseDirectory;
-            
-
-            var fisDir = Directory.GetParent(currentDir)!.Parent!.FullName;
-            Logger.WriteLine($"Fis dir is {fisDir}");
-            var filesToCopy = Directory.GetFiles(currentDir);
-            
-            foreach (var file in filesToCopy)
-            {
-                var ext = Path.GetExtension(file);
-                Logger.WriteLine($"File name {file}");
-                if (ext != ".zip")
-                {
-                    Logger.WriteLine($"None zip file skipped {file}");
-                    continue;
-                }
-               
-                var fileName = Path.GetFileName(file);
-                if (!fileName.Contains("fis_package"))
-                {
-                    Logger.WriteLine($"Zip file skipped {file}");
-                    continue;
-                }
-                Logger.WriteLine($"Do extract {file} begin");
-                var fileNameWithoutExt = Path.GetFileNameWithoutExtension(file);
-                var filePathToSkip = $"{fileNameWithoutExt}/";
-                Logger.WriteLine("Begin to extract");
-                using (ZipArchive archive = ZipFile.OpenRead(file))
-                {
-                    try
-                    {
-                        var entrys = archive.Entries;
-                        var fileDirs = entrys.Where(c => c.Name == "");
-                        var filesEntries = entrys.Where(c => c.Name != "");
-                        foreach (var dir in fileDirs)
-                        {
-                            var entrySubPath = dir.FullName.Replace(filePathToSkip, "");
-                            if (string.IsNullOrEmpty(entrySubPath))
-                            {
-                                continue;
-                            }
-                            string entryPath = Path.Combine(fisDir, entrySubPath);
-                            if (!Directory.Exists(entryPath))
-                            {
-                                Directory.CreateDirectory(entryPath);
-                            }
-                        }
-
-                        foreach (ZipArchiveEntry fileEntry in filesEntries)
-                        {
-                            var entrySubPath = fileEntry.FullName.Replace(filePathToSkip, "");
-                            string entryPath = Path.Combine(fisDir, entrySubPath);
-                            if (!fileEntry.Name.Contains("loader.exe"))
-                            {
-                                fileEntry.ExtractToFile(entryPath, true);
-                            }
-                        }
-                    }
-                    catch (Exception ex)
-                    {
-                        Logger.WriteLine($"Extract error {ex}");
-                    }
-                   
-                }
-
-                Logger.WriteLine("End to extract");
-                
-                Logger.WriteLine($"Do extract {file} end");
-                Logger.WriteLine($"Do delete {file} begin");
-                File.Delete(file);
-                Logger.WriteLine($"Do delete {file} end");
-            }
-            Logger.WriteLine($"Do restart begin");
-            new StartHandler().ExecuteWithPath(fisDir);
-            Logger.WriteLine($"Do restart end");
+            ToolManager.Instance.UpgradeCenter.ExecuteFullUpgrade(Logger.WriteLine);
         }
     }
 }

+ 3 - 23
fis.Loader/Handlers/PartUpgradeHandler.cs

@@ -1,4 +1,5 @@
-using System;
+using FisTools;
+using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
@@ -14,28 +15,7 @@ namespace fis.Loader.Handlers
         }
         internal override void Execute()
         {
-            Logger.WriteLine($"Part upgrade");
-            KillApp();
-            var currentDir = AppDomain.CurrentDomain.BaseDirectory;
-            var fisDir = Directory.GetParent(currentDir)!.Parent!.FullName;
-            Logger.WriteLine($"Fis dir is {fisDir}");
-            var webZipPath = Path.Combine(fisDir,"App","flyinsono");          
-            var updateCacheDir= Path.Combine(fisDir, "UpgradCache");
-            var filesToCopy = Directory.GetFiles(updateCacheDir);
-            foreach (var file in filesToCopy)
-            {
-                var ext = Path.GetExtension(file);
-                if (ext != ".zip")
-                {
-                    Logger.WriteLine($"Skipped none zip file for part upgrade");
-                    continue;
-                }
-                var fileName= Path.GetFileName(file);              
-                var fileDest = Path.Combine(webZipPath, fileName);
-                File.Copy(file, fileDest,true);
-                File.Delete(file);
-            }
-            new StartHandler().ExecuteWithPath(fisDir);
+            ToolManager.Instance.UpgradeCenter.ExecutePartUpgrade(Logger.WriteLine);
         }
     }
 }

+ 4 - 22
fis.Loader/Handlers/StartHandler.cs

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

+ 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-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>
+    <History>True|2023-04-22T09:47:56.0023097Z;True|2023-04-12T19:06:06.4479182+08:00;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>

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

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

BIN
third_party/SmartPublisher/FisTools.dll