public void Save(Stream stream) { // Make sure we're saving a valid package id PackageIdValidator.ValidatePackageId(Id); // Throw if the package doesn't contain any dependencies nor content if (!Files.Any() && !DependencyGroups.SelectMany(d => d.Packages).Any() && !FrameworkReferences.Any() && !FrameworkReferenceGroups.Any()) { throw new PackagingException(NuGetLogCode.NU5017, NuGetResources.CannotCreateEmptyPackage); } ValidateDependencies(Version, DependencyGroups); ValidateReferenceAssemblies(Files, PackageAssemblyReferences); ValidateLicenseFile(Files, LicenseMetadata); ValidateIconFile(Files, Icon); using (var package = new ZipArchive(stream, ZipArchiveMode.Create, leaveOpen: true)) { string psmdcpPath = $"package/services/metadata/core-properties/{CalcPsmdcpName()}.psmdcp"; // Validate and write the manifest WriteManifest(package, DetermineMinimumSchemaVersion(Files, DependencyGroups), psmdcpPath); // Write the files to the package HashSet <string> filesWithoutExtensions = new HashSet <string>(); var extensions = WriteFiles(package, filesWithoutExtensions); extensions.Add("nuspec"); WriteOpcContentTypes(package, extensions, filesWithoutExtensions); WriteOpcPackageProperties(package, psmdcpPath); } }
public void Populate(ManifestMetadata manifestMetadata) { IPackageMetadata metadata = manifestMetadata; Id = metadata.Id; Version = metadata.Version; Title = metadata.Title; Authors.AddRange(metadata.Authors); Owners.AddRange(metadata.Owners); IconUrl = metadata.IconUrl; LicenseUrl = metadata.LicenseUrl; ProjectUrl = metadata.ProjectUrl; RequireLicenseAcceptance = metadata.RequireLicenseAcceptance; DevelopmentDependency = metadata.DevelopmentDependency; Description = metadata.Description; Summary = metadata.Summary; ReleaseNotes = metadata.ReleaseNotes; Language = metadata.Language; Copyright = metadata.Copyright; MinClientVersion = metadata.MinClientVersion; ContentFiles = new List <ManifestContentFiles>(manifestMetadata.ContentFiles); if (metadata.Tags != null) { Tags.AddRange(ParseTags(metadata.Tags)); } DependencyGroups.AddRange(metadata.DependencyGroups); FrameworkReferences.AddRange(metadata.FrameworkReferences); if (manifestMetadata.PackageAssemblyReferences != null) { PackageAssemblyReferences.AddRange(manifestMetadata.PackageAssemblyReferences); } }
public void Save(Stream stream) { // Make sure we're saving a valid package id PackageIdValidator.ValidatePackageId(Id); // Throw if the package doesn't contain any dependencies nor content if (!Files.Any() && !DependencyGroups.SelectMany(d => d.Packages).Any() && !FrameworkReferences.Any()) { throw new InvalidOperationException("Cannot create a package that has no dependencies nor content."); } using (var package = new ZipArchive(stream, ZipArchiveMode.Create, leaveOpen: true)) { string psmdcpPath = $"package/services/metadata/core-properties/{Guid.NewGuid().ToString("N")}.psmdcp"; // Validate and write the manifest WriteManifest(package, DetermineMinimumSchemaVersion(Files, DependencyGroups), psmdcpPath); // Write the files to the package var extensions = WriteFiles(package); extensions.Add("nuspec"); WriteOpcContentTypes(package, extensions); WriteOpcPackageProperties(package, psmdcpPath); } }
public override int GetHashCode() { var combiner = new HashCodeCombiner(); combiner.AddObject(Identity); foreach (var hash in DependencyGroups.Select(group => group.GetHashCode()).OrderBy(x => x)) { combiner.AddObject(hash); } combiner.AddObject(ContentUri); return(combiner.CombinedHash); }
public void Save(Stream stream) { // Make sure we're saving a valid package id PackageIdValidator.ValidatePackageId(Id); // Throw if the package doesn't contain any dependencies nor content if (!Files.Any() && !DependencyGroups.SelectMany(d => d.Packages).Any() && !FrameworkReferences.Any()) { throw new InvalidOperationException(NuGetResources.CannotCreateEmptyPackage); } if (!ValidateSpecialVersionLength(Version)) { throw new InvalidOperationException(NuGetResources.SemVerSpecialVersionTooLong); } if (Version != null && Version.IsSemVer2) { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, NuGetResources.SemVer2VersionsNotSupported, Version)); } ValidateDependencyGroups(Version, DependencyGroups); ValidateReferenceAssemblies(Files, PackageAssemblyReferences); using (var package = new ZipArchive(stream, ZipArchiveMode.Create, leaveOpen: true)) { string psmdcpPath = $"package/services/metadata/core-properties/{Guid.NewGuid().ToString("N")}.psmdcp"; // Validate and write the manifest WriteManifest(package, DetermineMinimumSchemaVersion(Files, DependencyGroups), psmdcpPath); // Write the files to the package var extensions = WriteFiles(package); extensions.Add("nuspec"); WriteOpcContentTypes(package, extensions); WriteOpcPackageProperties(package, psmdcpPath); } }
public PackageDependencyGroups(PackageIdentity identity, DependencyGroups dependencyGroups) { Identity = identity; DependencyGroups = dependencyGroups; }