public void Add(IApplicationCollection applications) { IDirectoryNameSearch search = new LocalSearchProvider(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86)); Add2015AndOlder(search, applications); Add2017AndNewer(search, applications); }
public void Add(IApplicationCollection applications) { IDirectoryNameSearch search = new LocalSearchProvider(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86)); IDirectory directory = search .FindDirectories(TextSearch.CreateMatched("Microsoft VS Code")) .FirstOrDefault(); if (directory == null) { return; } //IFile file = directory // .WithFileNameSearch() // .FindFiles(TextSearch.CreateMatched("Code", false), TextSearch.CreateMatched(".exe")) // .FirstOrDefault(); IFile file = directory .WithFileEnumerator() .FirstOrDefault(f => f.Name == "Code" && f.Extension == "exe"); if (file == null) { return; } string filePath = file.WithAbsolutePath().AbsolutePath; FileVersionInfo version = FileVersionInfo.GetVersionInfo(filePath); applications.Add( String.Format("VS Code {0}.{1}.{2}", version.FileMajorPart, version.FileMinorPart, version.FileBuildPart), new Version(version.FileMajorPart, version.FileMinorPart), filePath, "{DirectoryPath}", IconExtractor.Get(filePath), Key.None, true ); }
public void Add(IApplicationCollection applications) { IDirectoryNameSearch search = new LocalSearchProvider(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86)); IEnumerable<IDirectory> directories = search.FindDirectories(TextSearch.CreatePrefixed("Microsoft Visual Studio")); foreach (IDirectory directory in directories) { string filePath = Path.Combine(directory.WithAbsolutePath().AbsolutePath, @"Common7\IDE\devenv.exe"); if (File.Exists(filePath)) { FileVersionInfo version = FileVersionInfo.GetVersionInfo(filePath); applications.Add( String.Format("Visual Studio {0}.{1}", version.FileMajorPart, version.FileMinorPart), new Version(version.FileMajorPart, version.FileMinorPart), filePath, null, IconExtractor.Get(filePath), true ); } } }