static void ModifyStaleSolutions(string targetDirectory)
        {
            IEnumerable <string> slnsInDirectory = Directory.EnumerateFiles(targetDirectory, "*.sln", SearchOption.AllDirectories);

            Parallel.ForEach(slnsInDirectory, slnFile =>
            {
                string[] staleProjects = StaleDependencies.IdentifyStaleDependencies(slnFile).ToArray();

                if (staleProjects.Any())
                {
                    Console.WriteLine($"Modifying {slnFile}");
                    SolutionModificationUtilities.RemoveProjectsFromSolution(slnFile, staleProjects);
                }
            }
                             );
        }
        static void RemoveMissingDependenciesFromSolutions(string targetDirectory)
        {
            IEnumerable <string> slnsInDirectory = Directory.EnumerateFiles(targetDirectory, "*.sln", SearchOption.AllDirectories);
            ConcurrentDictionary <string, string> missingGuidLookup = new ConcurrentDictionary <string, string>(StringComparer.InvariantCultureIgnoreCase);

            //Parallel.ForEach(slnsInDirectory, slnFile =>
            foreach (string slnFile in slnsInDirectory)
            {
                string[] staleProjects = StaleDependencies.IdentifyMissingDependencies(slnFile).ToArray();

                if (staleProjects.Any())
                {
                    // Because the dependency is missing we must parse the project for the project Guid
                    string[] guidsToRemove = StaleDependencies.GetGuidsForProjects(slnFile, staleProjects, missingGuidLookup).ToArray();
                    Console.WriteLine($"Modifying {slnFile}");
                    SolutionModificationUtilities.RemoveProjectsByGuidFromSolution(slnFile, guidsToRemove);
                }
            }
            //);
        }