diff --git a/BasicNodes/Tools/SevenZip.cs b/BasicNodes/Tools/SevenZip.cs index 419a3b5a..e0f52981 100644 --- a/BasicNodes/Tools/SevenZip.cs +++ b/BasicNodes/Tools/SevenZip.cs @@ -172,9 +172,20 @@ public class SevenZip : Node { Command = sevenZip }); - if (result.ExitCode != 0) - return Result.Fail("7zip not found on processing node."); - return sevenZip; + if (result.ExitCode == 0) + return sevenZip; + + if (OperatingSystem.IsWindows()) + { + // try default installation of 7zip + args.Logger?.ILog("7zip not found, trying default Windows install path"); + string programFilesDir = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles); + string sevenZipPath = Path.Combine(programFilesDir, "7-Zip", "7z.exe"); + if (System.IO.File.Exists(sevenZipPath)) + return sevenZipPath; + args.Logger?.ILog("Failed to locate 7zip in default Windows installation path: " + sevenZipPath); + } + return Result.Fail("7zip not found on processing node."); }