public PackagesConfig CreateNewPackagesConfig(VerifiedFolder projectDirectory) { string[] lines = new string[] { @"<?xml version=""1.0"" encoding=""utf-8""?>", "<packages>", "</packages>" }; var filePath = projectDirectory.FullName + @"\packages.config"; File.WriteAllLines(filePath, lines); return(_nugetReader.TryReadPackagesConfig(projectDirectory)); }
private void ExpandGraphNode(SolutionGraph graph, ProjectGraphNode node) { if (node.IsAlreadyExpanded) { return; } foreach (var projectRef in node.Project.ProjectReferences) { var projectRefNode = TryCreateGraphNode(graph, projectRef); if (projectRefNode != null) { node.ProjectRequirements.Add(projectRefNode); } } var nugetPackages = _nugetReferenceReader.TryReadPackagesConfig(node.Project.ProjectDirectory); foreach (var fileReference in node.Project.FileReferences) { var nugetPackage = nugetPackages?.FindPackage(fileReference.Include.ID); if (nugetPackage != null) { var nugetReference = new NugetReference(node.Project, nugetPackage, fileReference.GetFile(), fileReference.VersionFromPath ?? VersionWithSuffix.Empty()); node.NugetPackageRequirements.Add(nugetReference); } else { var reference = new ReferencedFile(node.Project, fileReference.GetFile(), fileReference.Include.Version); node.FileRequirements.Add(reference); } } }
public Problem[] DetectAllSolutionProblems(Solution solution) { List <Problem> problems = new List <Problem>(); var solutionGraph = _graphBuilder.BuildGraph(solution); problems.AddRange(DetectProblems(solutionGraph)); foreach (var node in solutionGraph.AllNodes.Values) { problems.AddRange(DetectProblems(node)); foreach (var nugetRef in node.NugetPackageRequirements) { problems.AddRange(DetectProblems(nugetRef)); } } foreach (var project in solution.Projects) { problems.AddRange(DetectProblems(project)); foreach (var reference in project.FileReferences) { problems.AddRange(DetectProblems(reference)); } foreach (var reference in project.ProjectReferences) { problems.AddRange(DetectProblems(reference)); } var packagesConfig = _nugetReferenceReader.TryReadPackagesConfig(project.ProjectDirectory); if (packagesConfig != null) { problems.AddRange(DetectProblems(packagesConfig)); foreach (var package in packagesConfig.Packages) { problems.AddRange(DetectProblems(package)); } } } return(problems.ToArray()); }