public string GetCommandPathFromRootPath(string rootPath, string commandName, params string[] extensions) { if (!extensions.Any()) { extensions = ExecutableExtensions.ToArray(); } var commandPath = extensions.Select(e => Path.Combine(rootPath, commandName + e)) .FirstOrDefault(File.Exists); return(commandPath); }
public string GetCommandPath(string commandName, params string[] extensions) { if (!extensions.Any()) { extensions = ExecutableExtensions.ToArray(); } var commandPath = SearchPaths.Join( extensions, p => true, s => true, (p, s) => Path.Combine(p, commandName + s)) .FirstOrDefault(File.Exists); return(commandPath); }
static void InitOS() { vsInstance = MSBuildLocator.QueryLatest(); string[]? pathext = Environment.GetEnvironmentVariable("PATHEXT")?.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (pathext == null || pathext.Length == 0) { ExecutableExtensions.Add(".exe"); ExecutableExtensions.Add(".cmd"); ExecutableExtensions.Add(".bat"); } else { foreach (string ext in pathext !) { ExecutableExtensions.Add(ext.ToLowerInvariant()); } } }