Example #1
0
        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));
        }
Example #2
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);
            }
        }