diff --git a/Tools/HashingCmdStart/Program.cs b/Tools/HashingCmdStart/Program.cs index f3b287ab1d002769cb532880115205f80372126c..d6ddc78a1efbea4d4ed32888a80c03ed58a6991c 100644 --- a/Tools/HashingCmdStart/Program.cs +++ b/Tools/HashingCmdStart/Program.cs @@ -2,6 +2,9 @@ { class Program { - static void Main(string[] args) => StarterHelper.StartVECTO(args); + static void Main(string[] args) + { + StarterHelper.StartVECTO(args, true); + } } } \ No newline at end of file diff --git a/Tools/HashingToolStart/Program.cs b/Tools/HashingToolStart/Program.cs index 6d55a719f74068db46301e4485e52d527b6ce2ba..212d779550bdfd8798482a1a49acfc37588ede55 100644 --- a/Tools/HashingToolStart/Program.cs +++ b/Tools/HashingToolStart/Program.cs @@ -9,7 +9,7 @@ namespace TUGraz.VECTO { try { // mk20220707: hashing tool currently only works under net45, therefore we hardcoded the version - StarterHelper.StartVECTO(new[]{"net45"}); + StarterHelper.StartVECTO(args); } catch (Exception e) { MessageBox.Show(e.Message); } diff --git a/Tools/VECTOConsoleStart/Program.cs b/Tools/VECTOConsoleStart/Program.cs index f5dbc4cdaa2e8621dcbd94670678b3b7cd11e6d2..2c3e89e56651c08449cab191f42d63d4d9a5e9e3 100644 --- a/Tools/VECTOConsoleStart/Program.cs +++ b/Tools/VECTOConsoleStart/Program.cs @@ -4,6 +4,9 @@ namespace TUGraz.VECTO { class Program { - static void Main(string[] args) => StarterHelper.StartVECTO(args); + static void Main(string[] args) + { + StarterHelper.StartVECTO(args, true); + } } } diff --git a/Tools/VECTOStart/StarterHelper.cs b/Tools/VECTOStart/StarterHelper.cs index 40e4bab5374630491362afb3783fe97be601ce86..0aec4549e9c6f905e38637b7144c6633e8b67c17 100644 --- a/Tools/VECTOStart/StarterHelper.cs +++ b/Tools/VECTOStart/StarterHelper.cs @@ -3,30 +3,53 @@ using System; using System.Collections; using System.Diagnostics; using System.IO; +using System.Linq; using System.Reflection; namespace TUGraz.VECTO { class StarterHelper { - public static void StartVECTO(string[] args, params string[] validVersions) + public static void StartVECTO(string[] cmdArguments, params string[] validVersions) + { + StartVECTO(cmdArguments, false, validVersions); + } + + public static void StartVECTO(string[] cmdArguments, bool consoleApp, params string[] validVersions) { var path = "No path found."; string version = "No version found."; if (validVersions is null || validVersions.Length == 0) { validVersions = new[] { "net45", "net48", "net60" }; } + + //var versionArgument = cmdArguments.FirstOrDefault(arg => arg.StartsWith("net")); try { - if (args.Length > 0) { - version = args[0].ToLower(); - } else { - version = GetHighestNETVersion(); - } + version = GetHighestNETVersion(); + path = $"{version}\\{Assembly.GetExecutingAssembly().GetName().Name}.exe"; - Process.Start(new ProcessStartInfo(path) { - WorkingDirectory = Directory.GetCurrentDirectory() - }); + + string argumentsString = ""; + if (cmdArguments.Length > 0) { + foreach (var cmdArgument in cmdArguments) { + argumentsString += "\"" + cmdArgument + "\" "; + } + } + + var processInfo = new ProcessStartInfo(path) { + WorkingDirectory = Directory.GetCurrentDirectory(), + Arguments = argumentsString, + }; + + + if (consoleApp) { + processInfo.UseShellExecute = consoleApp ? false : processInfo.UseShellExecute; + Process.Start(processInfo)?.WaitForExit(); + } else { + Process.Start(processInfo); + } + ValidateVersion(version, validVersions); } catch (Exception e) { var message = $"Error during starting VECTO.\nDetected .NET version: {version}\nTried to open path: {path}\n{e.Message}";