/// <summary> Attempts to get the NuGet package metadata from the given package. </summary> /// <param name="package"> The package.</param> /// <param name="metadata"> The package metadata.</param> /// <returns> true if it succeeds, false if it fails. </returns> private static bool TryGetPackageMetadata(ZipPackage package, out ManifestMetadata metadata) { var packageRelationship = package.GetRelationshipsByType("http://schemas.microsoft.com/packaging/2010/07/manifest") .SingleOrDefault( ); if (packageRelationship == null) { metadata = null; return(false); } var manifestPart = package.GetPart(packageRelationship.TargetUri); using (var partStream = manifestPart.GetStream( )) { var manifest = Manifest.ReadFrom(partStream, NullPropertyProvider.Instance, validateSchema: false); metadata = manifest.Metadata; return(true); } }
private static void TryUpdatePackageId(ZipPackage package, string signedPackageId) { // Update package id var manifestRelationType = package.GetRelationshipsByType("http://schemas.microsoft.com/packaging/2010/07/manifest").SingleOrDefault(); if (manifestRelationType != null) { var manifestPart = package.GetPart(manifestRelationType.TargetUri); var manifest = Manifest.ReadFrom(manifestPart.GetStream(), NullPropertyProvider.Instance, false); manifest.Metadata.Id = signedPackageId; package.DeleteRelationship(manifestRelationType.Id); package.DeletePart(manifestPart.Uri); Uri uri = PackUriHelper.CreatePartUri(new Uri(string.Format("/{0}.nuspec", signedPackageId), UriKind.Relative)); var newManifestPart = package.CreatePart(uri, "application/octet", CompressionOption.Maximum); manifest.Save(newManifestPart.GetStream(FileMode.Create)); package.CreateRelationship(uri, TargetMode.Internal, "http://schemas.microsoft.com/packaging/2010/07/manifest"); } }
private static void TryUpdatePackageId(ZipPackage package, string signedPackageId) { // Update package id var manifestRelationType = package.GetRelationshipsByType("http://schemas.microsoft.com/packaging/2010/07/manifest").SingleOrDefault(); if (manifestRelationType != null) { var manifestPart = package.GetPart(manifestRelationType.TargetUri); var manifest = Manifest.ReadFrom(manifestPart.GetStream(), NullPropertyProvider.Instance, false); manifest.Metadata.Id = signedPackageId; package.DeleteRelationship(manifestRelationType.Id); package.DeletePart(manifestPart.Uri); Uri uri = PackUriHelper.CreatePartUri(new Uri(string.Format("/{0}.nuspec", signedPackageId), UriKind.Relative)); var newManifestPart = package.CreatePart(uri, "application/octet", CompressionOption.Maximum); manifest.Save(newManifestPart.GetStream(FileMode.Create)); package.CreateRelationship(uri, TargetMode.Internal, "http://schemas.microsoft.com/packaging/2010/07/manifest"); } }