diff --git a/Dotnet/AppApi/AppApi.cs b/Dotnet/AppApi/AppApi.cs index 1cc134e2..2e002f41 100644 --- a/Dotnet/AppApi/AppApi.cs +++ b/Dotnet/AppApi/AppApi.cs @@ -202,11 +202,17 @@ namespace VRCX /// public void RestartApplication() { - var VRCXProcess = new Process(); - VRCXProcess.StartInfo.FileName = Path.Combine(Program.BaseDirectory, "VRCX.exe"); - VRCXProcess.StartInfo.UseShellExecute = false; - VRCXProcess.StartInfo.Arguments = "/Upgrade"; - VRCXProcess.Start(); + var vrcxProcess = new Process + { + StartInfo = new ProcessStartInfo + { + FileName = Path.Combine(Program.BaseDirectory, "VRCX.exe"), + Arguments = "/Upgrade", + UseShellExecute = true, + WorkingDirectory = Program.BaseDirectory + } + }; + vrcxProcess.Start(); Environment.Exit(0); } diff --git a/Dotnet/StartupArgs.cs b/Dotnet/StartupArgs.cs index 47081ea5..5b95e996 100644 --- a/Dotnet/StartupArgs.cs +++ b/Dotnet/StartupArgs.cs @@ -22,12 +22,15 @@ namespace VRCX { var args = Environment.GetCommandLineArgs(); processList = Process.GetProcessesByName("VRCX"); + + Debug.Assert(Program.LaunchDebug = true); - var isDebug = false; - Debug.Assert(isDebug = true); - + var disableClosing = false; foreach (var arg in args) { + if (arg == "/Upgrade") + disableClosing = true; + if (arg.Length > 12 && arg.Substring(0, 12) == "/uri=vrcx://") LaunchCommand = arg.Substring(12); @@ -42,15 +45,15 @@ namespace VRCX Program.AppDataDirectory = filePath; } - if ((arg.Length >= 7 && arg.Substring(0, 7) == "--debug") || isDebug) + if (arg.Length >= 7 && arg.Substring(0, 7) == "--debug") Program.LaunchDebug = true; } if (!string.IsNullOrEmpty(Program.AppDataDirectory)) - return; // we're launching with a custom config path, allow it + disableClosing = true; // we're launching with a custom config path, allow it // if we're launching a second instance, focus the first instance then exit - if (processList.Length > 1) + if (!disableClosing && processList.Length > 1) { IPCToMain(); Environment.Exit(0); diff --git a/Dotnet/Update.cs b/Dotnet/Update.cs index 80abddf6..84eff256 100644 --- a/Dotnet/Update.cs +++ b/Dotnet/Update.cs @@ -37,7 +37,7 @@ namespace VRCX try { File.Move(Update_Executable, VRCX_Setup_Executable); - var VRCXProcess = new Process + var vrcxProcess = new Process { StartInfo = new ProcessStartInfo { @@ -47,7 +47,7 @@ namespace VRCX WorkingDirectory = Program.AppDataDirectory } }; - VRCXProcess.Start(); + vrcxProcess.Start(); Environment.Exit(0); } catch (Exception e)