private static void FindAssemblies(string systemPath, int maxDepth, List <string> result) { if (maxDepth > 0) { try { if (Directory.Exists(systemPath)) { DirectoryInfo directoryInfo = new DirectoryInfo(systemPath); result.AddRange(from file in directoryInfo.GetFiles() where ImmediateWindow.IsManagedAssembly(file.FullName) select file.FullName); DirectoryInfo[] directories = directoryInfo.GetDirectories(); for (int i = 0; i < directories.Length; i++) { ImmediateWindow.FindAssemblies(directories[i].FullName, maxDepth - 1, result); } } } catch { } } }