From 5f396ee9f5c3b4c6a13c5891aa03168510c1ce23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=AD=20Climent?= Date: Mon, 10 Feb 2025 19:39:17 +0100 Subject: [PATCH] Fix UniGetUI not detecting certain executables present on system path but not on user (fix #2886, related to 2298) --- src/Directory.Build.props | 2 +- src/UniGetUI.Core.Tools/Tools.cs | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 44fb7ae94..8e5c8b280 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -2,7 +2,7 @@ enable 10.0.19041.0 - 10.0.26100.56 + 10.0.26100.57 8.0.405 Martí Climent and the contributors Martí Climent diff --git a/src/UniGetUI.Core.Tools/Tools.cs b/src/UniGetUI.Core.Tools/Tools.cs index c6ec50b5b..b0f870b52 100644 --- a/src/UniGetUI.Core.Tools/Tools.cs +++ b/src/UniGetUI.Core.Tools/Tools.cs @@ -88,6 +88,12 @@ public static Tuple Which(string command, bool updateEnv = true) { command = command.Replace(";", "").Replace("&", "").Trim(); Logger.Debug($"Begin \"which\" search for command {command}"); + + string PATH = Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.User) + ";"; + PATH += Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine) + ";"; + PATH += Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Process); + PATH = PATH.Replace(";;", ";").Trim(';'); + Process process = new() { StartInfo = new ProcessStartInfo @@ -106,6 +112,7 @@ public static Tuple Which(string command, bool updateEnv = true) { process.StartInfo = UpdateEnvironmentVariables(process.StartInfo); } + process.StartInfo.Environment["PATH"] = PATH; try {