private IEnumerable <ParsedPath> FindReferenceHintPaths() { var ns = new XmlNamespaceManager(new NameTable()); ns.AddNamespace("msb", MsbuildNamespaceUri); var hintPathElements = ProjectXml.XPathSelectElements("//msb:HintPath", ns); return(hintPathElements .Select(element => new ParsedPath(element.Value)) .Where(parsed => parsed.Parts.Count > 0)); }
public override IEnumerable <PackageReferenceInfo> LoadPackageReferences() { var packagesRootFolder = GetPackagesRootFolder(); var packages = GetPackages(); return(packages.Where(p => p != null)); IEnumerable <PackageReferenceInfo> GetPackages() { var elements = ProjectXml.XPathSelectElements("//PackageReference"); return(elements.Select(e => { var packageId = e.Attribute("Include")?.Value; var version = e.Attribute("Version")?.Value; if (!String.IsNullOrWhiteSpace(packageId) && !String.IsNullOrWhiteSpace(version)) { var folder = GetPackageFolder(packageId, version); return new PackageReferenceInfo( packageId, version, rootFolderPath: folder, libSubfolderPath: "lib"); } return null; })); } string GetPackageFolder(string packageId, string version) { var packageFolderPath = Path.Combine( packagesRootFolder, packageId.ToLower(), version.ToLower()); return(packageFolderPath); } }