diff --git a/project/Aki.Launcher.Base/Controllers/GameStarter.cs b/project/Aki.Launcher.Base/Controllers/GameStarter.cs index 1f29bcc..4131ac3 100644 --- a/project/Aki.Launcher.Base/Controllers/GameStarter.cs +++ b/project/Aki.Launcher.Base/Controllers/GameStarter.cs @@ -49,10 +49,10 @@ namespace Aki.Launcher if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) return null; - var uninstallStringValue = Registry.LocalMachine.OpenSubKey(registryInstall, false) - ?.GetValue("UninstallString"); - var info = (uninstallStringValue is string key) ? new FileInfo(key) : null; - return info?.DirectoryName; + var installLocation = Registry.LocalMachine.OpenSubKey(registryInstall, false) + ?.GetValue("InstallLocation"); + var info = (installLocation is string key) ? new DirectoryInfo(key) : null; + return info?.FullName; } public async Task LaunchGame(ServerInfo server, AccountInfo account, string gamePath) diff --git a/project/Aki.Launcher.Base/Helpers/FilePatcher.cs b/project/Aki.Launcher.Base/Helpers/FilePatcher.cs index 05e3917..34650c9 100644 --- a/project/Aki.Launcher.Base/Helpers/FilePatcher.cs +++ b/project/Aki.Launcher.Base/Helpers/FilePatcher.cs @@ -9,8 +9,8 @@ using System; using System.IO; -using System.Reflection.Metadata.Ecma335; using Aki.ByteBanger; +using Aki.Launcher.Controllers; using Aki.Launcher.MiniCommon; using Aki.Launcher.Models.Launcher; @@ -115,14 +115,21 @@ namespace Aki.Launcher.Helpers var target = Path.ChangeExtension(file.FullName, null); // remove patched file - var patched = new FileInfo(target); - patched.IsReadOnly = false; - patched.Delete(); + try + { + var patched = new FileInfo(target); + patched.IsReadOnly = false; + patched.Delete(); - // restore from backup - File.Copy(file.FullName, target); - file.IsReadOnly = false; - file.Delete(); + // Restore from backup + File.Copy(file.FullName, target); + file.IsReadOnly = false; + file.Delete(); + } + catch (Exception ex) + { + LogManager.Instance.Exception(ex); + } } } }