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)); } }
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>();
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); }
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); }
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()); } }
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(); } }