Exemplo n.º 1
0
 public override void AddPackage(IPackage package)
 {
     if (base.PackageSaveMode.HasFlag(PackageSaveModes.Nuspec))
     {
         string   manifestFilePath = this.GetManifestFilePath(package.Id, package.Version);
         Manifest manifest         = Manifest.Create(package);
         manifest.Metadata.ReferenceSets = Enumerable.Select <IGrouping <FrameworkName, IPackageAssemblyReference>, ManifestReferenceSet>(from f in package.AssemblyReferences group f by f.TargetFramework, delegate(IGrouping <FrameworkName, IPackageAssemblyReference> g) {
             ManifestReferenceSet set1   = new ManifestReferenceSet();
             ManifestReferenceSet set2   = new ManifestReferenceSet();
             set2.TargetFramework        = (g.Key == null) ? null : VersionUtility.GetFrameworkString(g.Key);
             ManifestReferenceSet local2 = set2;
             ManifestReferenceSet local3 = set2;
             local3.References           = Enumerable.Select <IPackageAssemblyReference, ManifestReference>(g, delegate(IPackageAssemblyReference p) {
                 ManifestReference reference1 = new ManifestReference();
                 reference1.File = p.Name;
                 return(reference1);
             }).ToList <ManifestReference>();
             return(local3);
         }).ToList <ManifestReferenceSet>();
         this.FileSystem.AddFileWithCheck(manifestFilePath, new Action <Stream>(manifest.Save));
     }
     if (base.PackageSaveMode.HasFlag(PackageSaveModes.Nupkg))
     {
         string packageFilePath = this.GetPackageFilePath(package);
         this.FileSystem.AddFileWithCheck(packageFilePath, new Func <Stream>(package.GetStream));
     }
 }
Exemplo n.º 2
0
 private static List <ManifestReferenceSet> CreateReferenceSets(IPackageMetadata metadata) =>
 Enumerable.Select <PackageReferenceSet, ManifestReferenceSet>(metadata.PackageAssemblyReferences, delegate(PackageReferenceSet referenceSet) {
     ManifestReferenceSet set1   = new ManifestReferenceSet();
     ManifestReferenceSet set2   = new ManifestReferenceSet();
     set2.TargetFramework        = (referenceSet.TargetFramework != null) ? VersionUtility.GetFrameworkString(referenceSet.TargetFramework) : null;
     ManifestReferenceSet local1 = set2;
     local1.References           = CreateReferences(referenceSet);
     return(local1);
 }).ToList <ManifestReferenceSet>();
Exemplo n.º 3
0
 public PackageReferenceSet(ManifestReferenceSet manifestReferenceSet)
 {
     if (manifestReferenceSet == null)
     {
         throw new ArgumentNullException("manifestReferenceSet");
     }
     if (!string.IsNullOrEmpty(manifestReferenceSet.TargetFramework))
     {
         this._targetFramework = VersionUtility.ParseFrameworkName(manifestReferenceSet.TargetFramework);
     }
     this._references = new ReadOnlyHashSet <string>(from r in manifestReferenceSet.References select r.File, StringComparer.OrdinalIgnoreCase);
 }
Exemplo n.º 4
0
        public PackageReferenceSet(ManifestReferenceSet manifestReferenceSet)
        {
            if (manifestReferenceSet == null)
            {
                throw new ArgumentNullException("manifestReferenceSet");
            }

            if (!String.IsNullOrEmpty(manifestReferenceSet.TargetFramework))
            {
                _targetFramework = VersionUtility.ParseFrameworkName(manifestReferenceSet.TargetFramework);
            }

            _references = new ReadOnlyHashSet<string>(manifestReferenceSet.References.Select(r => r.File), StringComparer.OrdinalIgnoreCase);
        }
Exemplo n.º 5
0
        private static List <ManifestReferenceSet> ReadReferenceSets(XElement referencesElement)
        {
            if (!referencesElement.HasElements)
            {
                return(new List <ManifestReferenceSet>(0));
            }

            if (referencesElement.ElementsNoNamespace("group").Any() &&
                referencesElement.ElementsNoNamespace("reference").Any())
            {
                throw new InvalidDataException(NuGetResources.Manifest_ReferencesHasMixedElements);
            }

            var references = ReadReference(referencesElement, throwIfEmpty: false);

            if (references.Count > 0)
            {
                // old format, <reference> is direct child of <references>
                var referenceSet = new ManifestReferenceSet
                {
                    References = references
                };
                return(new List <ManifestReferenceSet> {
                    referenceSet
                });
            }
            else
            {
                var groups = referencesElement.ElementsNoNamespace("group");
                return((from element in groups
                        select new ManifestReferenceSet
                {
                    TargetFramework = element.GetOptionalAttributeValue("targetFramework").SafeTrim(),
                    References = ReadReference(element, throwIfEmpty: true)
                }).ToList());
            }
        }
Exemplo n.º 6
0
        private static List<ManifestReferenceSet> ReadReferenceSets(XElement referencesElement)
        {
            if (!referencesElement.HasElements)
            {
                return new List<ManifestReferenceSet>(0);
            }

            if (referencesElement.ElementsNoNamespace("group").Any() &&
                referencesElement.ElementsNoNamespace("reference").Any())
            {
                throw new InvalidDataException(NuGetResources.Manifest_ReferencesHasMixedElements);
            }

            var references = ReadReference(referencesElement, throwIfEmpty: false);
            if (references.Count > 0)
            {
                // old format, <reference> is direct child of <references>
                var referenceSet = new ManifestReferenceSet
                {
                    References = references
                };
                return new List<ManifestReferenceSet> { referenceSet };
            }
            else
            {
                var groups = referencesElement.ElementsNoNamespace("group");
                return (from element in groups
                        select new ManifestReferenceSet
                        {
                            TargetFramework = element.GetOptionalAttributeValue("targetFramework").SafeTrim(),
                            References = ReadReference(element, throwIfEmpty: true)
                        }).ToList();
            }
        }