コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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());
        }
コード例 #4
0
 public PackageInProject(PackageIdentity identity, PackagePath path)
 {
     Identity = identity;
     Path     = path;
 }
コード例 #5
0
 public PackageInProject(string id, string version, PackagePath path) :
     this(new PackageIdentity(id, new NuGetVersion(version)), path)
 {
 }