public IEnumerable <PackageInProject> ReadFile(string baseDirectory, string relativePath) { var packagePath = new PackagePath(baseDirectory, relativePath, PackageReferenceType.PackagesConfig); using (var fileContents = File.OpenRead(packagePath.FullName)) { return(Read(fileContents, packagePath)); } }
private PackageInProject XmlToPackage(XElement el, PackagePath path) { try { var id = el.Attribute("Include")?.Value; var version = el.Attribute("Version")?.Value ?? el.Value; return(new PackageInProject(id, version, path)); } catch (Exception ex) { _logger.Error($"Could not read package from {el} in file {path.FullName}", ex); return(null); } }
public IEnumerable <PackageInProject> Read(Stream fileContents, PackagePath path) { var xml = XDocument.Load(fileContents); var packagesNode = xml.Element("packages"); if (packagesNode == null) { return(Enumerable.Empty <PackageInProject>()); } var packageNodeList = packagesNode.Elements() .Where(x => x.Name == "package"); return(packageNodeList .Select(el => XmlToPackage(el, path)) .Where(el => el != null) .ToList()); }
public PackageInProject(PackageIdentity identity, PackagePath path) { Identity = identity; Path = path; }
public PackageInProject(string id, string version, PackagePath path) : this(new PackageIdentity(id, new NuGetVersion(version)), path) { }