예제 #1
0
        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
                    );
                }
            }
        }